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

使用Xcode 6 ,我正在构build一个针对iOS8的iOS应用程序。

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

在XIB的主UIView ,我放置了一个UIImageView 。 我想添加宽度和高度约束,以便UIImageView具有与容器相同的大小。 但是,Xcode不让我这样做:我只能使用间距和alignment。

以下是我所看到的:

启动Screen.xib

我究竟做错了什么? 为什么我看不到像下面这样的菜单?

大小约束菜单

我知道我可以达到相同的结果,通过设置领先空间,尾随空间,顶部空间和底部空间到容器为0,但我也想知道这里发生了什么。

编辑:

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


我还没有find官方的解释,为什么XIB的行为就像这样, 当他们有一个UIView的根源
对我来说奇怪的是,我们提供的默认( LaunchScreen.xib )没有设置为像我们习惯的故事板一样。

我select的第一个解决scheme是使用Storyboard来绘制启动屏幕,而不是XIB:

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

启动屏幕故事板

另一种解决scheme是删除LaunchScreen.xib的默认UIView ,并将其replace为View Controller。
就像在前面的例子中一样,如果你这样做的话,你可以在View Controller的视图上工作,你将得到通常的约束菜单。

启动屏幕XIB

对于每个.xib都会发生这种情况,您无法制作与主视图等宽的视图。 另一方面,当你在故事板上时,可以做到这一点。

最后,如您所说,您可以通过设置前端,后端顶部和底部距离来完成所需的布局。

你的应用程序可以在单个设备上运行吗? 如果不是,你怎么知道容器的大小? 它会因iPhone 5,iPhone 6,iPod或iPad而有所不同。 最好的方法仍然是指定前导空间,尾随空间,顶部空间和底部空间为0.您确定它可以在任何设备上工作。

无论如何,我试图重现这个问题,但是无论是在编辑器/编辑中,还是通过按下编辑器底部的button,我都能够在Pin菜单中指定图像视图的宽度和高度。 我可以指定任何宽度/高度没有问题。

希望有所帮助!

一个非常简单的解决scheme是添加一个清晰的UIView并将其固定到容器中,然后通过将它们与已添加的清晰“根”UIView相关联来访问所有约束。