【问题标题】:Strange behavior of UITableViewController in iOS12 notch models, when the language setting of iPhone is Japanese or ChineseiOS12刘海机型中UITableViewController的奇怪行为,当iPhone的语言设置为日语或中文时
【发布时间】:2018-10-01 11:34:03
【问题描述】:

此问题取决于 iPhone 的语言设置。
我能够用日语和中文确认这个问题。
在英语等中不会发生此问题。

我创建了一个使用 Xcode10 在情节提要上安装 UINavigationController 的简单项目。 rootViewController 是默认的 UITableViewController。
我几乎没有更改故事板上的任何内容。
我使用字符串 1 到 5 的数组作为 UITableView 的数据源。

如果我在 iOS12 上构建和旋转它,UITableView 将加偏移顶部或位于 NavigationBar 下。
iOS11不会出现这个问题。此外,没有缺口的模型也不会出现问题。
此问题仅出现在 iOS12 的缺口型号上。 (iPhone X、XS、XS Max、Xr)

有人知道这个奇怪问题的原因吗?
谢谢。

我将我的项目上传到 GitHub。你能确认一下吗?

yaslam2222/SimpleTableViewController

【问题讨论】:

  • 什么是表格视图的contentInsetAdjustmentBehavior
  • 另外请显示代码。您是否正在重新加载表格视图?
  • @matt 由于 contentInsetAdjustmentBehavior 没有任意设置值,因此默认为自动。此外,将此其他值设置为 contentInsetAdjustmentBehavior 并不能解决此问题。我将我的项目上传到 GitHub。
  • 感谢 github 项目!我无法重现它的任何问题。
  • @matt 感谢您的确认。在我的环境中,这个问题总是会重现。您是否在启动应用程序后多次旋转设备?你确认过iOS12的型号吗? (iPhone X、XS、XS Max、XR)

标签: uitableview rotation xcode10 ios12 iphone-xs


【解决方案1】:

我认为你发现了一个错误! (正如您正确解释的那样,这仅发生在 X 设备上,仅在 iOS 12 中,并且仅在中文或日文环境中发生。)

这是一种解决方法——不是很令人满意,但至少它一种解决方法:

override func viewDidLoad() {
    super.viewDidLoad()
    self.edgesForExtendedLayout = []
}

【讨论】:

  • 谢谢!我会考虑使用 edgesForExtendedLayout 作为临时解决方案。
  • 虽然不多,但确实有效。您应该将此作为错误报告给 Apple!
  • 是的,我会向 Apple 报告这个错误。
【解决方案2】:

我向 Apple 报告了这个错误。苹果回应称将在 iOS 12.1 上修复。
我安装了 Xcode 10.1 beta 2 并在 iOS 12.1 模拟器上确认了这个错误。
我确认此错误已在 iOS 12.1(模拟器)上修复。
谢谢你。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-05
    • 1970-01-01
    • 2013-07-13
    • 1970-01-01
    相关资源
    最近更新 更多