簡體   English   中英

UITableViewCell viewWithTag如何確定正在編輯哪個單元格?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM