我有一个项目A
,它是在引入新屏幕尺寸之前启动的。在将我的Xcode升级到6.0之后,在故事板和IB中,我在开发用户界面时仍然使用4.0屏幕。当我在4.7屏幕和5.5屏幕上测试项目时,视图可以自动缩放,看起来与4.0相同。例如,在IB中,我有一个尺寸为60x60(在320x568视图中)的UIImageView,当我在iPhone 6模拟器中运行时,图像视图大小变为70x70。
最近我创建了另一个项目B
,它具有完全不同的初始设置。 (例如,没有* -Prefix.pch文件)。我仍然在4.0屏幕上开发了用户界面,但是当我在iPhone 6模拟器上测试时,视图没有缩放。
因此,我开始进行一些测试。两种测试都是在4.0屏幕尺寸下开发的。首先,我在Project A
的Storyboard的中心创建了一个带有标签的视图,并在iPhone 6模拟器中运行。第二次测试我在Project B
的Storyboard中创建了完全相同的视图,并在iPhone 6模拟器中运行。结果完全不同。
测试1的结果(项目A
):
测试2的结果(项目B
):
正如我们所看到的,当项目A
中运行的代码时,视图可以正确缩放到更大的屏幕,但在项目B
中,它无法扩展。
有人可以回答他们与众不同的原因吗?哪个结果正常?因为如果第一次测试结果是正常的,那么我不需要担心开发不同大小的视图(还是需要考虑3.5英寸)
更新:
似乎我需要为项目和控制变量使用自动布局做一些明确的事情,我取消选择使用大小类,因为项目A
之前没有那个。
更新:
我删除了每个视图控制器,并在两个项目中再次执行此操作。结果与以前一样。我查看了故事板的源代码,唯一的区别是视图控制器ID。
答案 0 :(得分:2)
感谢Brad,问题在于一个项目有启动图像而另一个项目没有。要使UI自动扩展,请选择“使用资产目录”。如果没有启动图像,它将显示黑色但无关紧要。因此,对于4英寸,4.7英寸和5.3英寸的屏幕,我们可以在一个屏幕尺寸上进行开发,并且可以自动扩展到其他屏幕而不受限制。