我想通过以下方法更改单元格的附件视图类型:didSelectRowAtIndexPath,即选择行时我想更改附件视图类型,我可以在该方法中执行此操作吗?
答案 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