【问题标题】:How to fix UITableView separator on iOS 7? [duplicate]如何修复 iOS 7 上的 UITableView 分隔符? [复制]
【发布时间】:2013-09-17 08:52:07
【问题描述】:

UITableView 在 iOS 7 上以参差不齐的线条绘制:

如何解决?单元格之间的线应该在屏幕的整个宽度上。

【问题讨论】:

    标签: iphone ios ipad uitableview ios7


    【解决方案1】:

    这是 iOS7 设计的默认设置。尝试执行以下操作:

    [tableView setSeparatorInset:UIEdgeInsetsMake(0, 0, 0, 0)];
    

    您可以从情节提要中设置“Separator Inset”:

    【讨论】:

    • 对于其他用户,注意这里的默认值为“Default”。您需要将其更改为“自定义”才能编辑插入值。
    • 希望堆栈溢出中能有更多像这样的gif
    • 这在 iOS 8 中表现得很奇怪。我将它设置为 0 但没有任何改变。但是我把它增加到50,它起作用了!我也尝试从代码中将其设置为 0,但没有。谁能证实这一点?我正在使用 Xcode 6 beta 4。
    • 我在 Xcode6 beta 4 中工作,当将左右两边的分隔符插入设置为 0 时,左侧仍然有一个小间隙。
    • 我无法发布 ios 8/xcode 6 解决方案,因为问题已锁定。但是你可以在这里找到 ios 8/xcode 6 的解决方案:stackoverflow.com/questions/25770119/…
    【解决方案2】:

    UITableView 有一个属性separatorInset。您可以使用它将表格视图分隔符的插图设置为零,以让它们跨越屏幕的整个宽度。

    [tableView setSeparatorInset:UIEdgeInsetsZero];
    

    注意:如果您的应用还针对其他 iOS 版本,您应该在调用它之前检查此属性的可用性,方法如下:

    if ([tableView respondsToSelector:@selector(setSeparatorInset:)]) {
        [tableView setSeparatorInset:UIEdgeInsetsZero];
    }
    

    【讨论】:

    • 请正确回答:` if ([tableView respondsToSelector:@selector(setSeparatorInset:)]) { [tableView setSeparatorInset:UIEdgeInsetsZero]; } `
    • 这一行应该用什么方法写?对我不起作用。
    • 这对我不起作用。但这有效:if ([self.tableView respondsToSelector:@selector(setSeparatorStyle:)]) { [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone]; }
    • 这个答案在 iOS8 中对我不起作用。这确实...tableView.layoutMargins = UIEdgeInsetsZero; 并在您的 cellForRowAtIndexPath 方法中:cell.layoutMargins = UIEdgeInsetsZero;
    • @Tim Awesome 评论。请将其作为答案发布,因为这是 iOS8 中唯一简单的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-01
    相关资源
    最近更新 更多