从NSIndexPath获取UITableViewCell?

时间:2015-07-14 10:54:09

标签: ios objective-c uitableview custom-cell nsindexpath

我在一个UITableView中使用多个viewController自定义单元格。自定义单元格有textFields,我可以编辑textFields。现在我想在编辑textField时在UITableView委托方法中获取精确textField的tableViewCell?

请记住,有多个tableView我想要获取正在编辑的精确表格的确切单元格。任何帮助?

2 个答案:

答案 0 :(得分:1)

您必须标记 tableview

在textfield delegate中使用以下代码

UITableViewCell *cell = (UITableViewCell *) textField.superview.superview.superview;
UITableView *curTableView = (UITableView *)cell.superview;
NSIndexPath *indexPath = [curTableView indexPathForCell:cell];

答案 1 :(得分:-1)

永远不要遍历超级视图,正确且最可靠的方式来做你想做的事情:

    CGPoint textViewPosition = [textView convertPoint:CGPointZero toView:self.tableView];
    CGRect senderFrame = CGRectMake(textViewPosition, textViewPosition, textView.frame.size.width, textView.frame.size.height);
    NSArray *indexPaths = [self.tableView indexPathsForRowsInRect:senderFrame];
    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:[indexPaths firstObject];

由于您在1个视图中有不同的表视图,这可能会变得更复杂,我建议您重新考虑为什么您有多个表视图,看看是否可以以更有效的方式执行此操作,即1个表视图自定义部分等...