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

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

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

【问题讨论】:

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

标签: swift xcode9 xcode-storyboard


【解决方案1】:

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

【讨论】:

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

在 Storyboard 中,打开 Assistant Editor。

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

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

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

【讨论】:

    猜你喜欢
    • 2018-09-24
    • 1970-01-01
    • 2018-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-05
    相关资源
    最近更新 更多