无法从willDisplayCell方法访问单元格

时间:2016-04-18 20:31:25

标签: ios objective-c

我有两种方法可以改变单元格的加速类型。 首先在加载所有单元格后调用,另一个单元格在用户单击任何单元格时调用。

第二种方法工作正常,它会从所选单元格中删除复选标记。不幸的是,第一个没有做任何事情(我想在其中一个单元格中添加复选标记)。这让我很困惑,因为这些方法应该是一样的,不管它们不应该吗?

// First method
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {

    if ([indexPath row] == ((NSIndexPath*)[[tableView indexPathsForVisibleRows]
lastObject]).row) 
    {
        LanguageTableViewCell *cell = [self.tableView cellForRowAtIndexPath: [NSIndexPath indexPathForRow:myNumber inSection:0]];
        cell.accessoryType = UITableViewCellAccessoryCheckmark;
    }
}

// Second method
- (void)tableView:(UITableView )tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{
    LanguageTableViewCell *cell = [tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:myNumber inSection:0]];
    cell.accessoryType = UITableViewCellAccessoryNone;
}

我试图更改单元格类,但它仍然无效。我不确定是否在正确的时间调用第一个函数=在viewDidLoad之后... 谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

您想使用- (__kindofUITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath