2012-03-14 48 views
0

我有一個普通的表格視圖,其佈局正確,只是其中一行的textLabel顯示爲黑色條,即黑色背景上的黑色文本。如果我選擇該行,文本顯示正常。但如果我選擇另一行,它會再次消失。UITableViewCell textLabel.text不在單行中顯示

我發現被黑掉的行是我在- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath方法中編程選擇的那一行。

我的代碼看起來是這樣的:

cell.selectionStyle = UITableViewCellSelectionStyleBlue; 

cell.textLabel.font = [UIFont systemFontOfSize:14]; 
cell.textLabel.text = @"some text"; 

if (self.selectedRow == indexPath.row) cell.selected = YES; 

我通過設置selectionStyle,即移動最後一行到頂部之前選擇小區解決了這個問題。

我確定必須有一個合理的解釋,但是我認爲我會爲其他人遇到類似的事情做出貢獻。

回答

1

首先,不與的cellForRowAtIndexPath選擇玩,如果你不希望得到這樣一個驚喜,一個小區的「選擇」屬性可能被手動改變(沒有在開發者參考禁止這樣做),如果在視圖出現後需要選擇單元格,您將在[tableView reloadData]調用之後執行此操作。第二,將片段中的最後一行放在未顯示的單元格上,而isSelected將會是YES--根本不好。

第三個和最後一個,「.text =」之後的「.selected =」是什麼消除黑色黑色神器,它與我相信的選擇風格無關。但是,該單元格不會顯示爲選中狀態 - 這確實很糟糕。

如果您需要更多關於如何以編程方式正確選擇單元格的詳細信息,請告知我們。

相關問題