0

UITableViewRowAction我创建了一个实例

 -(NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath

当触发此行操作时,我有一个处理程序块:

 handler:^(UITableViewRowAction *action, NSIndexPath *indexPath)

您有一个可以使用的行操作参数,因此您不会创建保留循环并且您有一个索引路径。我已经尝试backgroundColor像这样设置新的行操作:

 [action setBackgroundColor:[UIColor greenColor]];

但这并没有改变什么。我还尝试setNeedsDisplay了行操作的按钮对象,但没有任何运气。

知道如何backgroundColor在行操作仍然可见的情况下进行更改吗?谢谢

  • xCoder
4

1 回答 1

2

这是我的实现,效果很好。它也应该可以解决您的问题..

- (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewRowAction *one = [UITableViewRowAction rowActionWithStyle:0 title:@"one" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {

        NSLog(@"my first action");
    }];

    UITableViewRowAction *two = [UITableViewRowAction rowActionWithStyle:1 title:@"two" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {

        NSLog(@"my second action");

    }];

    UITableViewRowAction *three = [UITableViewRowAction rowActionWithStyle:1 title:@"three" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {

        NSLog(@"my third action");
    }];

    one.backgroundColor = [UIColor purpleColor];
    two.backgroundColor = [UIColor greenColor];
    three.backgroundColor = [UIColor brownColor];

    return @[one, two, three];
}
于 2015-06-18T12:07:52.507 回答