我有一个包含文本视图的单元格的UITableView ...我最初使用它设置它们,但使用viewWithTag:
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
}
UITextView *tv = [cell viewWithTag:2112];
我感到困惑的是如何捕获正在编辑的特定单元格。
在我的编辑处理程序中,如何获取正在编辑的文本视图所在的单元格?
TextView的编辑处理程序将不具有其所在单元格的上下文。
答案 0 :(得分:1)
我不确定为什么这么多人会使用这样的标签。如果您创建自定义UITableViewCell
子类,则会有更清晰的代码,并将IBOutlets
添加到您需要访问的任何UI
元素,例如本案例中的文本视图。然后,在{ {1}},为文本视图提供一个等于cellForRowAtIndexPath
的标记,这样您就可以查询该标记的文本视图,从而获得该单元格的indexPath。添加indexPath.row
的子类涉及只需添加UITableViewCell
并将其挂起 - 通常无需在.m文件中放置任何内容。
答案 1 :(得分:1)
您可以将标签分配给UITextView,如
UITextView *tv = [cell viewWithTag:2112];
[tv setDelegat:self];
[tv setTag:2000+indexPath.row];
并在UITextView委托方法中了解哪个单元格开始编辑
- (void)textViewDidBeginEditing:(UITextView *)textView
{
if (textView.tag == 2000)//for first cell
{
....
}
else if (textView.tag == 2001)//for second cell
{
....
}
}
答案 2 :(得分:0)
对UITextView进行子类化并添加名为@property (nonatomic, strong) id customData ;
的属性,将indexPath存储在customData中,然后使用indexPath查找该单元格。
或者,只需将单元格存储在customData中,但您可以使用弱而不是强@property (nonatomic, weak) id customData ;
。