[英]UITableViewCell viewWithTag how do I figure out which cell is being edited?
我有一個包含文本視圖的單元格的UITableView ...我最初使用它設置它們,但是使用viewWithTag:
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
}
UITextView *tv = [cell viewWithTag:2112];
我很困惑的是如何捕獲正在編輯的特定單元格。
在我的編輯處理程序中,如何獲取正在編輯的文本視圖所在的單元格?
TextView的編輯處理程序將不具有其所在單元格的上下文。
我不確定為什么這么多人會使用這樣的標簽。 如果你創建一個自定義的UITableViewCell
子類,你將會有更清晰的代碼,並將IBOutlets
添加到你需要訪問的任何UI
元素,就像在這種情況下的文本視圖。然后,在cellForRowAtIndexPath
,給文本視圖一個等於indexPath.row
所以你可以查詢該標簽的文本視圖,從而獲得單元格的indexPath。添加UITableViewCell
的子類只不過是添加IBOutlets
並將它們連接起來 - 通常不需要在.m中添加任何內容。文件。
您可以將標簽分配給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
{
....
}
}
對UITextView進行子類化並添加名為@property (nonatomic, strong) id customData ;
的屬性@property (nonatomic, strong) id customData ;
,將indexPath存儲在customData中,然后使用indexPath查找該單元格。
或者,只需將單元格存儲在customData中,但您可以使用弱而不是強大的@property (nonatomic, weak) id customData ;
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.