【问题标题】:Avoid extra leading margin for UITableViewCell under iOS 11避免 iOS 11 下 UITableViewCell 的额外领先边距
【发布时间】: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


    【解决方案1】:

    我能够使用UITableViewCell with autolayout left margin different on iPhone and iPad 的答案解决这个问题。在 table view cell 和它包含的 content view 上设置“Preserve Superview Margins”解决了 iOS 10 和 iOS 11 渲染之间的不一致。

    【讨论】:

      【解决方案2】:

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

      override func awakeFromNib() {
          super.awakeFromNib()
      
          preservesSuperviewLayoutMargins = false
          contentView.preservesSuperviewLayoutMargins = false
      }
      

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

      【讨论】:

        猜你喜欢
        • 2016-12-24
        • 1970-01-01
        • 2016-11-03
        • 2015-01-27
        • 1970-01-01
        • 2017-02-22
        • 2020-09-09
        • 2017-11-05
        • 1970-01-01
        相关资源
        最近更新 更多