[objective-c]将操作处理程序添加到在 ios6 使用单元格中的按钮 [表 dequeueReusableCellWithIdentifier:forIndexPath:]

标签: ios Objective-C
发布时间: 2016/10/2 5:32:31
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

在 ios6,[UITableView dequeueReusableCellWithIdentifier:forIndexPath:] 总是返回一个单元格。 那么,如果我想在我的牢房,添加一些按钮处理程序和避免添加目标每次重复使用该单元格。

现在,我使用标记来记住是单元格已经钩起来︰

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"MyCell";
    MyCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
    if(!cell.tag){
        cell.tag = 1;
        [cell.playButton addTarget:self action:@selector(playInputClicked:) forControlEvents:UIControlEventTouchUpInside];
    }
    return cell;
}

任何更好的解决方案 (不使用 registerClass 或 registerNib)。

任何建议表示赞赏,

雨果

解决方法 1:

只是再添加它。 该按钮自动消除重复的目标行动成对。 如果你这样做︰

for (int i = 0; i < 100; ++i) {
    [cell.playButton addTarget:self action:@selector(playInputClicked:) forControlEvents:UIControlEventTouchUpInside];
}

......你会发现,你只能接受 playInputClicked: 一次每个tap,不 100 倍。

官方微信
官方QQ群
31647020