尝试支持iPhone和3.5英寸屏幕时的问题

时间:2013-02-07 19:53:31

标签: iphone ios cocoa-touch interface-builder iphone-5

我开始在iPhone 5上开发新应用程序,现在我还需要添加对3.5英寸屏幕的支持。如您所知,4屏幕上的内容空间比3.5屏幕更多。

当我在3.5屏幕上运行应用程序时,整个布局都搞砸了。是否可以在4英寸屏幕上正常使用布局,但在3.5屏幕上运行时将布局放在滚动视图中?

我的想法是滚动页面而不是完全重新设计它。我怎样才能做到这一点?

(或者可能在某种程度上可以单独设计3.5屏幕和4屏幕的布局)?

3 个答案:

答案 0 :(得分:1)

完全可以为3.5英寸和4英寸屏幕设计完全不同的布局。你只需要添加这个:

#define IS_IPHONE_5 (((double)[[UIScreen mainScreen] bounds].size.height) == ((double)568))

使用 if(IS_IPHONE_5){do this ...} else {do that ...}

构建单独的案例

<强> BUT

这应该仅作为最后的手段,因为它需要大量的手动/额外编码。理想情况下,您应该以这样的方式创建视图,使其自动调整两个屏幕的自身。你可以用两种方式做到这一点:

1)使用自动布局,即在每个视图元素之间应用约束。 (我个人不喜欢它)

2)在没有AutoLayout的情况下,在每个视图元素上应用自动调整大小的蒙版。 (并通过切换故事板中的外形尺寸按钮进行检查)

答案 1 :(得分:0)

为此你需要添加名称为Default-568h@2x.png的大小为640 * 1136的图像并添加到图像文件夹中,然后在Target-General- AppIcons中添加图像

这很简单,对我有用

答案 2 :(得分:0)

我不建议使用ScrollView,因为如果你按照那个方法进行操作,那么将会有很多关于UI ELEments的重构

如果您包含的元素很少,那么我建议您使用AutoLayout或AutoResizing Mask,根据您的视图高度设置约束,使其扩展和收缩

如果您的View包含许多约束冲突的UI ELements,那么只有你的应用程序中对应于同一个类的两个XIb文件(在Class Inspector中将ClassName设置为Two Xins),如果你正在使用故事板然后只需复制你的当前视图并为iPhone 5调整它,并为每个设置不同的StoryBoard标识符,然后根据设备高度分别加载视图,如

if([[[UIScreen mainSceen] bounds] .size.height&gt; 480){

//加载iPhone 5 View }否则{

//加载iPhone 4视图 }