如何在didSelectRowAtIndexPath中访问当前选定的单元格?

时间:2011-07-01 10:58:41

标签: iphone objective-c ios xcode

我想通过以下方法更改单元格的附件视图类型:didSelectRowAtIndexPath,即选择行时我想更改附件视图类型,我可以在该方法中执行此操作吗?

6 个答案:

答案 0 :(得分:136)

您可以使用 indexPath 这样从 didSelectRowAtIndexPath:方法获取单元格。

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];

答案 1 :(得分:6)

在Swift 3.0中:您可以根据需要使用这两种方式

 let cell:UITableViewCell = tableView.cellForRow(at: indexPath) as UITableViewCell

let cell:CustomTableViewCell = tableView.cellForRow(at: indexPath) as! CustomTableViewCell

快乐编码!!

答案 2 :(得分:5)

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
{
     UITableViewCell *myCell = [tableView cellForRowAtIndexPath:indexPath];
     // Access accessory View  as below.  
     UIView * myCellAccessoryView = myCell.accessoryView;
}

答案 3 :(得分:3)

使用以下函数并传递所选行的索引路径,以便再次重新加载特定单元格。

- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation

另一种解决方案:存储选定的行索引并重新加载tableview。然后在cellForRowAtIndexPath中检查所选行并更改单元格的附件视图。

答案 4 :(得分:3)

<强>夫特

您可以使用indexPath从didSelectRowAtIndexPath:方法获取单元格,如下所示:

 let cell:UITableViewCell? = tableView.cellForRowAtIndexPath(indexPath)

答案 5 :(得分:1)

存储选定的索引路径。例如:  NSInteger selectedIndexPath; 然后按照以下步骤操作。设置你的配件视图。

// poll once per second
setInterval(function() {
    // put some code here that will run every second
}, 1000);

// code here will run immediately - the timer callback runs some time in the future