更改自定义UIButton的状态

时间:2011-12-07 23:10:46

标签: iphone uitableview

我在IB中创建了一个自定义UITableViewCell。我有一个名为CheckMarkButton的自定义UIButton,我在IB中添加了它,背景图片为“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行。在我访问单元格后,我尝试将按钮设置为选中以显示已选中

cell.CheckMarkButton.selected = YES;

通过此声明,我看不到单元格中的复选标记图标发生变化。我究竟做错了什么?感谢。

1 个答案:

答案 0 :(得分:0)

您不是在更改背景,只是设置启用的属性。

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