从 NSIndexPath 获取 UITableViewCell?

get UITableViewCell from NSIndexPath?

我在单个 viewController 中使用多个 UITableView 和自定义单元格。自定义单元格有 textFields,我可以编辑文本字段。现在我想在编辑 textField 时在 textField 委托方法中获得确切 UITableView 的 tableViewCell?

请记住有多个 table 视图,我想获得正在编辑的 table 的确切单元格。有帮助吗?

您的 tableview

必须有 tag

在文本字段委托中使用以下代码

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

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

    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 个视图中有不同的 table 视图,我建议重新考虑为什么您有超过 1 个 table 视图,看看您是否不能在一个视图中执行此操作更有效的方式,即 1 table 带有自定义部分的视图等...