【发布时间】:2018-02-10 11:49:48
【问题描述】:
在 iOS11 (Xcode 9) 下编译的所有自定义 UITableViewCells 都获得了额外的领先优势,但在 iOS10 (Xcode 8) 下没有。请看图片。
iOS 10,使用 Xcode 8 编译
iOS 11,使用 Xcode 9 编译
如何为装有 iOS 11 的设备获取 iOS 10 行为。
【问题讨论】:
标签: uitableview ios11
在 iOS11 (Xcode 9) 下编译的所有自定义 UITableViewCells 都获得了额外的领先优势,但在 iOS10 (Xcode 8) 下没有。请看图片。
iOS 10,使用 Xcode 8 编译
iOS 11,使用 Xcode 9 编译
如何为装有 iOS 11 的设备获取 iOS 10 行为。
【问题讨论】:
标签: uitableview ios11
我能够使用UITableViewCell with autolayout left margin different on iPhone and iPad 的答案解决这个问题。在 table view cell 和它包含的 content view 上设置“Preserve Superview Margins”解决了 iOS 10 和 iOS 11 渲染之间的不一致。
【讨论】:
另一种解决方法,在相反的方向(即具有与 iOS 10 中相同的行为),是在单元格和单元格的内容视图中将 preservesSuperviewLayoutMargins 设置为 false。比如在你UITableViewCell子类中:
override func awakeFromNib() {
super.awakeFromNib()
preservesSuperviewLayoutMargins = false
contentView.preservesSuperviewLayoutMargins = false
}
这样可以恢复 iOS 10 的行为。
【讨论】: