在iOS11(Xcode 9)下编译的所有自定义UITableViewCells
都获得了额外的领先优势,但不是iOS10(Xcode 8)。请看图片。
使用Xcode 8编译的iOS 10
使用Xcode 9编译的iOS 11
如何获得iOS 11设备的iOS 10行为。
答案 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的行为。