2010-03-18 84 views
0

我正在學習使用複選標記單元格附件,並且想知道爲什麼當切換單元格時,單元格的內容正在消失。爲什麼我的UITableViewCell的內容消失了?

這裏是我的代碼:

+ (void) toggleCheckmarkedCell:(UITableViewCell *)cell { 
    if (cell.accessoryType == UITableViewCellAccessoryNone) 
     cell.accessoryType = UITableViewCellAccessoryCheckmark; 
    else 
     cell.accessoryType = UITableViewCellAccessoryNone; 
} 

這裏是didSelectRowAtIndexPath方法:

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
[cell setSelectionStyle:UITableViewCellSelectionStyleNone]; 

[RootViewController toggleCheckmarkedCell:cell]; 

的選中標記切換開/關,是可見的,但細胞的主要內容消失。任何人都可以解釋爲什麼會發生?

謝謝

+0

功能回答這裏:http://stackoverflow.com/questions/1459137/problems-with-a-checkmark-in-a-uitableviewcell – barfoon 2010-03-18 14:18:42

回答

7

你的細胞不disapearing,他們只是改變selectionStyle。 例如,您在textLabel中使用黑色字體顯示文本。當您單擊單元格時,將其選中,然後cell.selected屬性更改爲YES,並自動將textLabel字體顏色更改爲白色,單元格背景爲藍色。然後,您將selectionStyle更改爲UITableViewCellSelectionStyleNone並將單元格的背景顏色更改爲白色。但細胞仍然保持選定狀態,文字顏色仍然是白色。在白色背景上的白色顏色根本無形。

要解決這個問題,你應該改變選定的屬性,而不是selectionStyle。或使用自定義單元格。從尼克·貝德福德採取

+0

謝謝,但如果我添加cell.selected = NO ;,細胞變藍一秒鐘,然後回到白色。我怎樣才能阻止藍色出現? – barfoon 2010-03-18 15:58:48

+1

集合: cell.selectionStyle = UITableViewCellSelectionStyleNone; 當你創建單元格時。 和didSelectRowAtIndexPath只設置selected = NO; – Vladimir 2010-03-18 17:48:06

+0

非常感謝, – barfoon 2010-03-18 18:42:49

相關問題