更新到 Xcode 9 后 UITableView 中的布局问题

Layout issues in UITableView after updating to Xcode 9

我更新到 Xcode 9 后,iOS 10 设备中的 UITableView 表现异常。 table视图单元格大小未维护。它自行调整大小,而不是遵循我明确编码的约束和单元格大小。 tableView 单元格之间的间隙突然变黑了。然而,这些布局问题并没有在 iOS 11 手机中出现。 一言以蔽之,布局完全被iOS 10台设备搞砸了。更新到 Xcode 9 后,是否还有其他人具有向后兼容性?如果有你是怎么解决的。

更改自定义 table 视图单元格的框架宽度 我正在使用框架 属性。我使用的代码是

    override var frame: CGRect {

    //Decrease frame width of the tableViewCell
    get {
        return super.frame
    }
    set (newFrame) {
        var frame = newFrame
        frame.origin.x += 8
        frame.size.width = frame.size.width-16
        super.frame = frame
    }
}

下面是 tableViewCell 在 iOS 11 中的显示方式,这是正确的

这是 tableViewCell 在 iOS 10 中的显示方式,这是不正确的

[

如您所见,从右边距到 tableView Cell 的间隙更大。

扔掉你现有的代码。不要以任何方式触摸单元格的边框。

要使 看起来 的单元格比 table 窄,请为单元格提供清晰的背景,并在内容视图中放置一个不透明的视图,该视图从单元格的边界(或者您可以为此使用单元格的背景视图)。使用自动布局对其进行配置,以便无论屏幕尺寸如何都能正常工作。