【问题标题】:How do you prevent UITableViewCellSelectionStyleNone from removing cell separator如何防止 UITableViewCellSelectionStyleNone 删除单元格分隔符
【发布时间】:2014-09-01 21:30:30
【问题描述】:

是否可以防止UITableViewCellSelectionStyleNone 移除单元格分隔符?

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

如果你仔细观察,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 ...”是否属于不同的单元格?灰色地带是“大学……”的扩展区域吗?如果您使用的是模拟器,您是否将其放大到最大以检查丢失的线是否真的是由于分辨率低而导致的视觉伪影?
  • 不,它们不属于同一个单元格,它们在各自的单元格中,是的,它们的灰色区域是扩展区域,是的,我已经放大了 :) 我仍然什么也没看到
  • 一项小研究发现这是一个 iOS 7 错误,描述了几个解决方法here
  • @keeshux 是的!这行得通!干杯:)
  • 很好,您愿意分享您的个人解决方案作为答案吗?其他用户肯定会很感激。

标签: ios uitableview


【解决方案1】:

这解决了我的问题:

didSelectRowAtIndexPath 方法中,我使用了以下内容:

(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

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

}

像魔术一样工作!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-03
    相关资源
    最近更新 更多