UITableViewCell textLabel.text未显示在单行中

时间:2012-03-14 20:12:35

标签: ios uitableview selection

我有一个正常布局的普通表视图,除了其中一行上的textLabel显示为黑条,即黑色背景上的黑色文本。如果我选择该行,文本显示正常。但如果我选择另一行,它会再次消失。

我发现被涂黑的行是我在- (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 个答案:

答案 0 :(得分:1)

首先,不要在cellForRowAtIndexPath上进行选择,如果你不想得到像这样的惊喜,单元格的“selected”属性可能会手动更改(开发人员参考的任何内容都禁止这样做)如果在视图出现后需要选择单元格,则在[tableView reloadData]调用之后执行此操作。

其次,从片段中放置最后一行会使单元格不显示为选中,而isSelected将为YES - 根本不好。

第三个也是最后一个,“。select =”在“.selected =”之后删除了黑色黑色神器,它与我认为的选择风格无关。但是,单元格不会显示为选中 - 这非常糟糕。

如果您需要有关如何以编程方式正确选择单元格的详细信息,请与我们联系。