如何防止 UITableViewCellSelectionStyleNone 移除单元格分隔线?

4

有没有办法防止 UITableViewCellSelectionStyleNone 移除单元格分隔符?

我有一个自定义的可扩展 UITableViewCell,当我点击一个单元格时会发生以下情况:

Separator between King’s Meadow and University East Entrance missing

如果你仔细看,King's Meadow 和 University East Entrance 之间没有分隔符。

使用下面的代码可以让分隔符显示出来,但是需要一定的延迟时间:

(void)layoutSubviews {
    [super layoutSubviews];

    for (UIView *subview in self.contentView.superview.subviews) {
        if ([NSStringFromClass(subview.class) hasSuffix:@"SeparatorView"]) {
            subview.hidden = NO;
        }
    }
}

有没有更好的方法处理这个问题?


“King's Meadow”和“University ...”属于不同的单元格吗?灰色区域是“University ...”的扩展区域吗?如果您正在使用模拟器,是否已将缩放比例调整到最大以检查缺失的线路是否实际上是由于低分辨率而产生的视觉伪影? - keeshux
不,它们不属于同一个单元格,它们在各自的单元格中。是的,灰色区域是扩展区域,我已经放大了 :) 但我仍然看不到任何东西。 - ipalibowhyte
1
一番调查后发现这是iOS 7的一个bug,有几种解决方法在这里描述:链接 - keeshux
@keeshux 是的!这个有效!干杯 :) - ipalibowhyte
1
很好,你能把你的个人解决方案分享为一个答案吗?其他用户肯定会感激的。 - keeshux
1个回答

1
这解决了我的问题:
didSelectRowAtIndexPath方法中,我使用了以下代码:
(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

    [self.tableView deselectRowAtIndexPath:indexPath animated:YES];
    [self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];

}

像魔法一样有效!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接