使用 Xcode 6 ,我正在构建一个针对 iOS8 的iOS应用。
我正在使用菜单LaunchScreen.xib
创建的File > New > File > iOS - User Interface - Launch Screen
文件。 "使用自动布局"已启用。
在XIB的主要UIView
内,我已经放置了UIImageView
。我想添加宽度和高度约束,以便UIImageView
具有与容器相同的大小。但是,Xcode不允许我这样做:我只能使用间距和对齐方式。
这就是我所看到的:
我做错了什么?为什么我看不到如下菜单?
我知道通过将前导空格,尾随空格,顶部空间和底部空间设置为0可以达到相同的结果,但我还想了解这里发生了什么。
答案 0 :(得分:4)
编辑:
Xcode 7 + 默认为启动屏幕的Storyboard文件
如下所述,与XIB不同,Storyboard文件允许您将宽度和高度约束设置为根UIView
。
我无法找到官方解释为什么XIB的行为如此,当他们在根时有UIView
。
对我来说看起来很奇怪的是,我们默认提供的内容(LaunchScreen.xib
)的设置与我们习惯使用的故事板完全不同。
我选择的第一个解决方案是使用Storyboard绘制Launch Screen而不是XIB:
LaunchScreen.xib
LaunchScreen.storyboard
(菜单:File > New > File > iOS - User Interface - Storyboard
)LaunchScreen.storyboard
LaunchScreen.storyboard
,添加视图控制器,确保勾选“是初始视图控制器框”
另一种解决方案是删除UIView
中的默认LaunchScreen.xib
并将其替换为视图控制器。
就像在前一种情况下一样,如果你这样做,你可以使用View Controller的View,你将获得通常的约束菜单。
答案 1 :(得分:2)
对于每个.xib都会发生这种情况,你只能看到宽度等于主视图的视图。另一方面,当你在故事板上时,可以这样做。
最后,正如您所说,您可以通过设置前导,尾随顶部和底部距离来完成所需的布局。
答案 2 :(得分:0)
您的应用会在单个设备上运行吗?如果不是,你怎么知道容器的大小?它将在iPhone 5,iPhone 6,iPod或iPad之间变化。最好的方法仍然是将前导空格,尾随空格,顶部空间和底部空间指定为0.您确定它可以在任何设备上运行。
无论如何,我试图重现这个问题,但我可以在Pin菜单中指定图像视图的宽度和高度,无论是在Editor / Pin中还是按下编辑器底部的按钮。我可以毫无问题地指定任何宽度/高度。
希望有所帮助!
答案 3 :(得分:0)
一个非常简单的解决方案是添加一个清晰的UIView并将其固定到容器,然后您可以通过将它们与您添加的清晰“根”UIView相关联来访问所有约束。