13

iPhone 6 Plus 上的表格视图单元格分隔符出了点问题。我创建了一个空白测试项目,其中包含一个自定义单元格,只有一个标签和一个 15pt 的前沿约束。

iPhone 5S

标签和分隔符距离前缘 30 px (15pt)。一切都很好。

iPhone 5S

iPhone 6 加

标签距前缘 48 px (15pt),分隔符距前缘 60px (20pt)。

iPhone 6 加

如果我记录 tableView.separatorInset,它在 iPhone 5S 上是 15pt,在 6 Plus 上是 20pt。在 6 Plus 上手动将插图设置为 15 不起作用。

请发送帮助。

4

5 回答 5

6

覆盖自定义单元格类中的 layoutMargins 方法。

 - (UIEdgeInsets)layoutMargins
{
    return UIEdgeInsetsMake(0, 15, 0, 0);
}
于 2014-10-29T06:02:49.747 回答
2

如果您使用 Storyboard,请选择 Table View 属性检查器。更改

分离器插图

风俗

并将默认左边距保留为15.

于 2015-08-17T05:03:26.437 回答
1

不是一个完美的解决方案,但它对我有用。

@IBOutlet weak var leftViewLeadingConstraint: NSLayoutConstraint!

override func viewWillLayoutSubviews() {
    super.viewWillLayoutSubviews()
    switch UIScreen.mainScreen().scale {
    case 2:
        leftViewLeadingConstraint.constant = 7.0
    case 3:
        leftViewLeadingConstraint.constant = 11.0
    default:
        assertionFailure("Error: wrong scale value")
    }
}
于 2015-03-12T13:21:34.700 回答
1

我通过这个解决方案修复:http: //qiita.com/mono0926/items/42f7a344b39e946abfe2

调用时获取tableView.separatorInset.left值。viewDidLayoutSubviews

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    notificationLabelLeft.constant = tableView.separatorInset.left
}
于 2015-07-07T02:03:01.590 回答
0

只需将表格的这个选项设置为 false,它在所有设备上都可以正常工作,尤其是在 iPad 上。

cellLayoutMarginsFollowReadableWidth = false
于 2017-09-12T02:01:29.527 回答