什么设置决定应用程序是否适配iPhone 6和6 Plus?

6
当我在iPhone 6模拟器上运行我的项目时,部署目标是7.1,我期望所有内容都能自动适应更大的屏幕尺寸。但实际情况并非如此。我的UILabel之前在320像素宽的故事板屏幕中水平居中,并带有到父视图的前导空间约束,现在在模拟器中显示出与该空间约束完全相同的样子,而不是被缩放。因此,它显示不居中,因为iPhone6更宽。哪个设置确定应用程序是否适配iPhone 6和iPhone 6+? Paul G.

@rdelmar,App Store上的应用在iPhone 6之前发布的版本将自动适配iPhone 6。为什么?这是由什么决定的? - Fraggle
就像我说的,你需要设置正确的约束条件。如果你使用中心约束而不是边缘约束,它将自动居中,无论屏幕大小如何。你需要设计你的约束条件来考虑未来屏幕大小的变化。 - rdelmar
1
你的项目是否有一个基础SDK 8.0?它是否设置了新的“启动屏幕文件”? - rmaddy
@rdelmar 这不是问题所在。一个没有设置使用更大的 iPhone 6 尺寸的应用程序将简单地进行缩放。一切都应该看起来一样,没有任何变化。它只是物理上更大以填充屏幕。 - rmaddy
找到了答案(请查看此页面上的我的回答)。终于谷歌给了我我所需要的 :) rmaddy在启动屏幕文件方面走得很对。 - Fraggle
显示剩余2条评论
1个回答

6

好的,我找到了:

iOS8有什么新内容

“为了让系统知道你的应用支持iPhone 6屏幕尺寸,请在应用程序包中包含一个故事板启动屏幕文件。运行时,系统会寻找一个故事板启动屏幕文件。如果存在这样的文件,则系统假定你的应用明确支持iPhone 6和6 Plus,并在全屏模式下运行它。如果不存在这样的图像,则系统报告较小的屏幕尺寸(320 x 480点或320 x 568点),以便你的应用程序基于屏幕进行的计算仍然是正确的。然后将内容缩放以适应更大的屏幕。”

所以我删除了自动添加的LaunchImage.xib文件,并在plist中删除了该条目。


任何正在进行此操作的人都应该考虑使用自动布局而不是依赖缩放。使用缩放会导致诸如导航/状态栏和键盘等元素具有相同的比例,而不是利用更大的屏幕尺寸。因此,您将获得一个缩放的应用程序,其分辨率与您为较小的手机设计的分辨率相同,而不是使用自动布局来确保您的应用程序适用于小型iPhone和较大的屏幕(iPhone 6和iPad)。请参见此处的提示#2。http://www.raywenderlich.com/89816/porting-app-iphone-6-iphone-6-plus-ios-8-top-10-tips - mitrenegade
@mitrenegade,是的,这是真的,但奇怪的是,自动布局不会自动缩放其约束以适应适当的屏幕尺寸。当您的屏幕比几个全宽表视图更复杂时,这会带来问题,虽然可以解决,但并不理想(大小类、编程修改约束、不同的故事板等)。最终,我认为苹果应该有一个自动缩放约束的功能。 - Fraggle
我完全同意。每当我遇到一个更复杂的屏幕时,为 iPhone 大小相对正确地缩放它们已经很痛苦了。在 iPhone 4S 上看起来不错的东西,在 iPhone 6 上就不好看了。 我认为,如果一个屏幕足够复杂,使自动布局成为一种痛苦,那么这可能是你想要重新设计平板电脑布局的时候了。除非你有时间做这个,否则我想缩放可能是下一个解决方案。 我已经想出了一些复杂的方法来使约束“缩放”,这通常是一种逐案例的解决方案。自动布局比大多数人知道的要深入得多。 - mitrenegade
我已经尝试了上面的建议。 应用中没有LaunchScreen故事板。 iPhone5应用程序似乎正在缩放,但顶部和底部有黑色条纹。 - OneGuyInDc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接