这是一个相当简单的情况:
我有自定义 UITableViewCell 类,它有自己的属性、网点和东西。其中有两个 UIButtons -> Like和Dislike。您可以将它们视为喜欢或不喜欢评论按钮。
我已经像这样向它们添加了 IBActions(在 TableViewController 中,而不是 CustomCell 类中):
- (IBAction)likeComment:(UIButton *)sender {
CustomTableCell *thisCell = (CustomTableCell *)[[[sender superview] superview] superview]; // to fetch that cell from view
RSSItem *item = [commentsToDisplay objectAtIndex:indexPath.row];
//code to set NSUserDefault value for the comment ID, so it can never be voted for again
[self.tableView reloadData];
}
在 CellForRowAtIndexPath 中,我检查是否选择了当前项目的用户默认设置,如果是,我禁用按钮(您可以喜欢或不喜欢,而不是两者,因此需要禁用所有按钮):
if((/* get NSUserDefault for the ID*/) == YES){
[cell.likeButton setEnabled:NO];
[cell.dislikeButton setEnabled:NO];
}
在这里,调用了适当的单元格 indexPath,获取的行的项目和项目的 ID 是正确的。
问题是随机按钮(在一些重复使用的单元格中),除了当前选择的一个之外,也被选中(禁用)。如果我尝试通过插座禁用它们,也会发生同样的事情。这当然是不可接受的。我已经尝试了各种组合,但显然我的想法是错误的。
有什么建议或链接吗?或者如何正确地将这些按钮与动作和位置连接起来。