ios - UITableView中的UIButton点击 objective-c 中的多个按钮

标签 ios objective-c uitableview

我在 UITableview 中有 2 个按钮。当我在 UITableView 中选择一个按钮时,也会单击其他下方的按钮。为什么单击一个按钮会选择多个 UIButtons?

我正在使用 Storyboard ,我的代码是:

- (IBAction)yesBtnAction:(id)sender {
    UITableViewCell *clickedCell = (UITableViewCell *)[[sender superview] superview];
    NSIndexPath *indexPath = [self.take5table indexPathForCell:clickedCell];
    UIButton *yesBTN=(UIButton *)[clickedCell.contentView viewWithTag:100];
    UIButton *noBTN=(UIButton *)[clickedCell.contentView viewWithTag:111];
    [yesBTN setBackgroundColor:[UIColor colorWithRed:0.23 green:0.62 blue:0.23 alpha:1.0]];
    [noBTN setBackgroundColor:[UIColor whiteColor]];
}

- (IBAction)noBtnAction:(id)sender {
    UITableViewCell *clickedCell = (UITableViewCell *)[[sender superview] superview];
    NSIndexPath *indexPath = [self.take5table indexPathForCell:clickedCell];
    UIButton *yesBTN=(UIButton *)[clickedCell.contentView viewWithTag:100];
    UIButton *noBTN=(UIButton *)[clickedCell.contentView viewWithTag:111];
    [yesBTN setBackgroundColor:[UIColor whiteColor]];
    [noBTN setBackgroundColor:[UIColor redColor]];
}

任何帮助/建议将不胜感激。

最佳答案

问题是您没有正确处理单元重用。

您需要确保您的 cellForRowAtIndexPath正确设置每个按钮的状态。这需要基于您在数据模型中跟踪的某些状态。这个数据模型需要随着它点击的每个按钮而更新。

您正试图保持按钮中的状态。那是行不通的。

关于ios - UITableView中的UIButton点击 objective-c 中的多个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40458434/

相关文章:

iOS:在后台模式下未调用 didDiscoverPeripheral

ios - 如何使用 swift 获取当前播放音乐的专辑封面?

objective-c - 为什么 popViewController 动画 :YES occasionally not animate?

objective-c - 无法关闭键盘

iOS tableview单元格随机为空

ios - 当我在 objective-c 中触摸标签时,如何根据标签的大小增加/减少矩形大小

ios - 错误:socket select()函数在iOS系统中始终返回零

iphone - 在 ABPeoplePickerNavigationController 中自定义表格单元格

ios - TextView无法正确调整大小

ios - 在 UIViewAlertForUnsatisfiableConstraints 中使用 Autolayout 结果的可扩展 UITableView Cell