2011-12-07 49 views
0

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

当我使用TableView中该小区,在的cellForRowAtIndexPath,我添加了一个目标按钮:

cell.CheckMarkButton addTarget:self [email protected](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; 

有了这个说法,我没有看到我的细胞的复选标记图标变化。我究竟做错了什么?谢谢。

回答

0

你不改变背景,只是设置启用属性。

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