get UITableViewCell from NSIndexPath?



我在单个viewController中使用多个具有自定义单元格的UITableView。自定义单元格有textFields,我能够编辑文本字段。现在我想得到确切的UITableView的tableViewCell在textField委托方法当我编辑文本字段?

记住有多个tableview,我想要得到确切的单元格的确切的表,我正在编辑。任何帮助吗?

你必须有标签到你的tableview

在textfield委托中使用下面的代码

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];

这可能会变得更复杂,因为你在一个视图中有不同的表视图,我建议重新思考为什么你有多个表视图,看看你是否能以更有效的方式做到这一点,即一个表视图与自定义部分等…

最新更新