我有一个正常布局的普通表视图,除了其中一行上的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之前选择单元格来解决问题,即将最后一行移到顶部。
我确信必须有一个合理的解释,但我认为我会做出贡献以防万一其他人遇到类似的东西。
答案 0 :(得分:1)
首先,不要在cellForRowAtIndexPath上进行选择,如果你不想得到像这样的惊喜,单元格的“selected”属性可能会手动更改(开发人员参考的任何内容都禁止这样做)如果在视图出现后需要选择单元格,则在[tableView reloadData]调用之后执行此操作。
其次,从片段中放置最后一行会使单元格不显示为选中,而isSelected将为YES - 根本不好。
第三个也是最后一个,“。select =”在“.selected =”之后删除了黑色黑色神器,它与我认为的选择风格无关。但是,单元格不会显示为选中 - 这非常糟糕。
如果您需要有关如何以编程方式正确选择单元格的详细信息,请与我们联系。