从 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 带有自定义部分的视图等...
我在单个 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 带有自定义部分的视图等...