gpt4 book ai didi

ios - xib 文件中的安全区域布局指南 - iOS 10

转载 作者:IT王子 更新时间:2023-10-29 07:33:34 24 4
gpt4 key购买 nike

我开始为 iPhone X 调整我的应用程序,并在 Interface Builder 中发现了一个问题。根据 Apple 官方视频,安全区域布局指南应该是向后兼容的。我发现它在 Storyboard中工作得很好。

但在我的 XIB 文件中,安全区域布局指南在 iOS 10 中不受尊重。

它们在新操作系统版本中运行良好,但 iOS 10 设备似乎简单地将安全区域距离假定为零(忽略状态栏大小)。

我是否缺少任何必需的配置?它是 Xcode 错误吗?如果是,是否有任何已知的解决方法?

这是一个测试项目中的问题截图(左 iOS 10,右 iOS 11):

safe area alignment on top of the screen

最佳答案

安全区域布局和向后兼容性存在一些问题。查看我对 here 的评论.

您也许可以通过附加约束来解决这些问题,例如 1000 优先级 >= 20.0 到 superview.top 和 750 优先级 == safearea.top。如果您始终显示状态栏,应该可以解决问题。

更好的方法可能是为 iOS 11 之前的版本和 iOS-11 及更高版本使用单独的 Storyboard/xib,尤其是当您遇到比这更多的问题时。更可取的原因是因为在 iOS 11 之前,您应该将约束布局到顶部/底部布局指南,但对于 iOS 11,您应该将它们布局到安全区域。布局指南不见了。按照 iOS 11 之前版本的布局指南进行布局在风格上比仅仅偏移 20 像素要好,即使结果与 IFF 相同,您始终显示状态栏也是如此。

如果您采用这种方法,则需要将每个文件设置为将在其上使用的正确部署目标(iOS 11 或更早版本),这样 Xcode 就不会向您发出警告并允许您使用布局指南或安全区域,视情况而定。在您的代码中,在运行时检查 iOS 11,然后加载适当的 Storyboard/xibs。

这种方法的缺点是维护,(您将有两套 View Controller 来维护和保持同步),但是一旦您的应用仅支持 iOS 11+ 或 Apple 修复了向后兼容性布局指南约束生成,您可以摆脱 iOS 11 之前的版本。

顺便问一下,您如何显示您正在使用的 Controller ?它只是 Root View Controller 还是您提供了它,或者..?我注意到的问题与推送 View Controller 有关,因此您可能遇到了不同的情况。

关于ios - xib 文件中的安全区域布局指南 - iOS 10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46298427/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com