避免在iOS 11下为UITableViewCell带来额外的领先优势

时间:2017-09-01 11:55:53

标签: uitableview ios11

在iOS11(Xcode 9)下编译的所有自定义UITableViewCells都获得了额外的领先优势,但不是iOS10(Xcode 8)。请看图片。

使用Xcode 8编译的iOS 10

enter image description here

使用Xcode 9编译的iOS 11

enter image description here

如何获得iOS 11设备的iOS 10行为。

2 个答案:

答案 0 :(得分:6)

我能够使用UITableViewCell with autolayout left margin different on iPhone and iPad的答案解决这个问题。在表格视图单元格及其包含的内容视图上设置“保留Superview边距”可解决iOS 10和iOS 11中渲染之间的不一致问题。

答案 1 :(得分:3)

另一个解决方法是,在相反的方向(即在iOS 10中具有相同的行为),将在单元格和单元格的内容视图中将preservesSuperviewLayoutMargins设置为false。例如,在您UITableViewCell子类中:

override func awakeFromNib() {
    super.awakeFromNib()

    preservesSuperviewLayoutMargins = false
    contentView.preservesSuperviewLayoutMargins = false
}

这样可以恢复iOS 10的行为。