【问题标题】:Layout differencies in Interface Builder and real device screenInterface Builder 和真实设备屏幕中的布局差异
【发布时间】:2013-08-05 13:58:30
【问题描述】:

我正在为 Retina 3.5 和 Retina 4 屏幕(iPhone 系列)开发一个应用程序。我遇到了下一个问题。我在.xib 文件中创建了一个视图,并将大小设置为 Retina 3.5 全屏。在屏幕的最底部,我放置了一个viewUILabel。您可以在屏幕上看到视图:

如您所见,视图位于最底部。但是,当我在设备或带有标签的模拟器视图上运行应用程序时,由于某种原因不适合屏幕:

所以问题 - 可能是什么问题?我怎样才能解决这个问题?为什么 IB 视图大小不正确?

【问题讨论】:

  • 显示状态栏,但不在 Interface Builder 中。
  • 您使用的是什么自动调整大小/自动布局?

标签: iphone ios cocoa-touch interface-builder


【解决方案1】:

您已将 NIB 设置为没有状态栏,但您的应用有状态栏。这意味着您的 NIB 的大小为 480 pts 高(在 3.5 英寸的屏幕上),而实际上它应该是 460(由于状态栏)。这会将您的视图向下推相应的高度(20 pts,您可以看到在底部的截止标签上)。

对此有许多修复。您可以只告诉您的 NIB 它有一个状态栏,但更好的选择是将您的视图设置为根据其边界动态调整大小。具体如何操作取决于您是否使用自动布局,但您需要检查“自动调整子视图大小”并确保视图元素保持锁定在您想要的位置。

【讨论】:

  • 好的。谢谢我真的忘记了。但是您能否解释一下我该怎么做:“但更好的选择是将您的视图设置为根据其边界动态调整大小”。附言我不使用自动布局。
  • 如果您不使用自动布局,那么这意味着 a) 将主视图设置为自动调整子视图的大小,以及 b) 对视图应用适当的自动调整大小掩码(可能是 UIViewAutoresizingFlexibleHeight。您可以在 IB 中设置掩码,在检查器的“维度”选项卡下)。
猜你喜欢
  • 1970-01-01
  • 2015-01-31
  • 1970-01-01
  • 1970-01-01
  • 2012-06-02
  • 2017-11-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多