2012-03-14 49 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 =”是什么消除黑色黑色神器,它与我相信的选择风格无关。但是,该单元格不会显示为选中状态 - 这确实很糟糕。

如果您需要更多关于如何以编程方式正确选择单元格的详细信息,请告知我们。

相关问题