Iphone 更改自定义UIButton的状态

Iphone 更改自定义UIButton的状态,iphone,uitableview,Iphone,Uitableview,我在IB中创建了一个自定义UITableViewCell。我在IB中添加了一个名为CheckMarkButton的自定义UIButton,背景图像为“unchecked.png”(没有复选标记的空框) 在TableView中使用此单元格时,在cellForRowAtIndexPath中,我为按钮添加了一个目标: cell.CheckMarkButton addTarget:self action@selector(CheckmarkButtonPressed:) forControlEvents

我在IB中创建了一个自定义UITableViewCell。我在IB中添加了一个名为CheckMarkButton的自定义UIButton,背景图像为“unchecked.png”(没有复选标记的空框)

在TableView中使用此单元格时,在cellForRowAtIndexPath中,我为按钮添加了一个目标:

cell.CheckMarkButton addTarget:self action@selector(CheckmarkButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
然后,对于选择器:

- (void)CheckmarkButtonPressed:(id)sender {
     UIButton *theButton = (UIButton *)sender;
     theButton.selected = !theButton.selected;
     [theButton setImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateSelected];
}
因此,这部分工作符合预期。现在,我有了另一个从节头调用的方法,在该节中,我选中或取消选中该节中的所有TableView行。在我访问单元格后,我尝试将按钮设置为selected以显示它已选中

cell.CheckMarkButton.selected = YES;

通过此语句,我看不到单元格中的复选标记图标更改。我做错了什么?谢谢。

您没有更改背景,只是设置了enabled属性

但总的来说,你只是做错了。与每次选择按钮时手动更改图像不同,您应该在Interface Builder中为每个状态配置不同的图像。这样,每当您将按钮标记为选中时,图像将自动更新