在情节提要中更改“查看为:iPhone”时出现 UI 错误

Posted

技术标签:

【中文标题】在情节提要中更改“查看为:iPhone”时出现 UI 错误【英文标题】:UI bug when changing "View as: iPhone" in storyboard 【发布时间】:2017-11-23 08:35:28 【问题描述】:

我有一个包含许多视图控制器的故事板。例如,如果我选择“查看为 iPhone SE”并构建到 iPhone SE,一切正常。但是,如果我保留“查看为 iPhone SE”并构建到 iPhone 6,则 UI 是错误的。这可以为每部 iPhone 重现。我正在使用自动布局和约束。

我尝试存档并上传到试飞,但遇到了同样的问题。

【问题讨论】:

您应该使用自动调整大小或约束来解决 ui 问题。 我正在使用约束 那么可能的原因一定是您没有正确应用约束。请您上传任何屏幕截图,以便问题更容易理解。 你找到解决这个问题的方法了吗?提前致谢。 @AnthoPak 是的,我刚刚写了我的答案。 【参考方案1】:

就我而言,这是因为我在 viewDidLoad 而不是 viewDidLayoutSubviews 函数中进行了一些 UI 更改。

【讨论】:

谢谢。事实上,我在viewDidLoad 中添加了圆角。但是在viewDidLayoutSubviews 中进行更改并不是最好的选择,因为它会被多次调用,并且帧有时在第一次调用时是错误的(因为 Xcode 8...)。所以我的解决方案是在进行更改之前调用[self.view layoutIfNeeded](在viewDidLoad 中)。 +1 因为你带领我走上了正确的道路:) 是的,我同意这就是为什么我有一个布尔抽屉 = false,如果视图被绘制一次,则初始化为 true。就我而言,它完成了这项工作。【参考方案2】:

在 Storyboard 中,打开 Assistant Editor。

从“助理编辑器”菜单中,选择“预览”。

当前活动视图控制器将显示在助手编辑器中。

添加多部不同尺寸的手机,无需在模拟器上构建即可实时查看自动布局结果。

【讨论】:

以上是关于在情节提要中更改“查看为:iPhone”时出现 UI 错误的主要内容,如果未能解决你的问题,请参考以下文章

将项目从情节提要更改为 xib 文件时出现“此类与键的键值编码不兼容”错误

更改 NavigationItem 提示时出现奇怪的动画

如何在 Xcode 的情节提要中显示状态栏

仅在从iPhone 11开始使用故事板启动后,应用程序启动时出现黑屏

如何更改情节提要中 tableHeaderView 的高度?

在情节提要中更改 UIButton BorderColor