2009-10-07 94 views
1

我正在使用自定义的UITableViewCell类。我的单元格上有多个按钮(准确的说是4个),并且按钮点击在使用此单元类的UIViewController中处理。iPhone - 与自定义单元格dequeueReusableCellWithIdentifier问题

我正在尝试使用按钮的标记来计算单击按钮的行号。但是如果一个单元格没有被创建而是使用一个空闲对象,那么这样做会导致一个问题。在这种情况下,标签和行号不匹配。

有人可以告诉我如何处理这种情况?如果我将相同的标签赋予不同行中的所有按钮,如何识别按钮被点击的行?

非常感谢。

回答

0
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    static NSString *CellIdentifier = @"Cell"; 

    MyTableCell *cell = (MyTableCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) {  
     // whatever you have now 
    } 
    // Set up the cell... 
    cell.myListViewController = self; 
    int tag = indexPath.row; 
    cell.button1.tag = tag; 
    cell.button2.tag = tag; 
    cell.button3.tag = tag; 
.... 
} 

此代码在每一行中都有一个唯一的按钮标签。您将标记设置为不在新单元格创建中,但是包括重用在内的所有情况。

+0

所以你说我保留UITableViewCell类中的UIButton对象的实例? – lostInTransit 2009-10-07 10:25:54

+0

请注意,如果您有一个表格部分,则将该行用作标记只能可靠地工作。 – 2009-10-07 10:42:14

+0

是的,我只有一个部分。谢谢。 – lostInTransit 2009-10-07 11:16:11

相关问题