启动屏幕XIB:缺少宽度/高度限制(Xcode 6)

Par*_*ara 6 xcode interface-builder ios autolayout

使用Xcode 6,我正在构建针对iOS8的iOS应用。

我正在处理LaunchScreen.xib从菜单创建的文件:File > New > File > iOS - User Interface - Launch Screen。启用“使用自动布局”。

在XIB的主体内部UIView,我放置了一个UIImageView。我想添加宽度和高度约束,以使它UIImageView具有与容器相同的大小。但是,Xcode不允许我这样做:我只能使用间距和对齐方式。

这是我看到的:

启动Screen.xib

我究竟做错了什么?为什么看不到以下菜单?

尺寸限制菜单

我知道可以通过将容器的前导空间,尾随空间,顶部空间和底部空间设置为0来达到相同的结果,但是我也想了解这里发生的事情。

Par*_*ara 4

编辑:

Xcode 7+默认为启动屏幕使用 Storyboard 文件。
如下所述,与 XIB 不同,Storyboard 文件允许您设置 root 的宽度和高度约束UIView


我还没有找到一个官方解释来解释为什么 XIB在根目录下有一个UIView.
在我看来奇怪的是,我们提供的默认设置 ( LaunchScreen.xib) 的行为与我们已经习惯的 Storyboard 并不完全相同。

我选择的第一个解决方案是使用 Storyboard 来绘制启动屏幕,而不是 XIB:

  • 删除LaunchScreen.xib
  • 创建一个LaunchScreen.storyboard(菜单File > New > File > iOS - User Interface - Storyboard:)
  • 转到项目属性,选择导航到目标的常规属性,然后LaunchScreen.storyboard在“启动屏幕文件”组合框中选择
  • 打开LaunchScreen.storyboard,添加一个视图控制器,并确保勾选“是初始视图控制器框”
  • 您现在可以将视图控制器的视图作为启动屏幕,并且您将获得我最初寻找的宽度和高度约束

启动屏幕故事板

另一种解决方案是删除默认值UIView并将LaunchScreen.xib其替换为视图控制器。
就像前面的情况一样,如果这样做,您可以在视图控制器的视图上工作,并且您将获得通常的约束菜单。

启动屏幕 XIB