我有一個自定義UITableViewCell
,它按預期工作。 除了一個(重要的)細節。自定義UITableViewCell中的複選框取消選擇行選擇
我的單元格(從Nib加載)包含UIButton
(設置爲自定義)。 該按鈕就像一個複選框。 大多認爲複選框被選中時(=選中) 使用自定義圖片:
[self.checkboxButton setImage:[UIImage imageNamed:@"check_off"] forState:UIControlStateNormal];
[self.checkboxButton setImage:[UIImage imageNamed:@"check_on"] forState:UIControlStateSelected];
的問題是:
當我選擇我行的複選框(按鈕)將自動取消。 我已經遍佈我的代碼,看看這是從哪裏來的,並且 不會將選定的屬性設置在複選框的任何位置,但在我的自定義tableviewcell代碼中爲 。
有趣的部分是:
當我把我的tableviewcell.selectionstyle
到UITableViewCellSelectionStyleNone
一切正常(沒有自定義backgrond顏色)。 當我切換到UITableViewCellSelectionStyleGray
時,該複選框被自動取消選擇。
更新
當我改寫setSelected:animated:
我的複選框選中撐。
- (void) setSelected:(BOOL)selected animated:(BOOL)animated
{
// checkbox stays checked as expected
NSLog(@"set select with anim");
// when calling super setSelected:animated: checkbox gets unchecked
// [super setSelected:selected animated:animated];
}
有一些機制我失蹤?
例如,我必須覆蓋setSelected:
,drawRect
...
我已經江郎才盡瞭如何處理這個虛幻的錯誤。
謝謝。
你在選擇單元格時調用了'reloadData'嗎?如果是的話,那可能是你問題的原因。 – janusbalatbat
我在'[[self tableView] reloadData];'中查找並替換了';在我的tableviewcontroller中,現在有一個集中的方法來重新載入tableview的數據。一旦表的數據就位,這個方法就不會再被調用。所以謝謝你的建議,但它似乎不是罪魁禍首。 – Webdevotion