2011-12-07 78 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中爲每個狀態配置不同的圖像。通過這種方式,只要將按鈕標記爲選中,圖像就會自動更新。