2

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

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

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

(或者也许有可能以某种方式分别为 3.5 屏幕和 4 屏幕设计布局)?

4

3 回答 3

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...}

这只能作为最后的手段,因为它需要大量的手动/额外编码。理想情况下,您应该以这样一种方式创建视图,即它会自动针对两个屏幕进行自我调整。你可以通过两种方式做到这一点:

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

2)不使用 AutoLayout,通过在每个视图元素上应用自动调整大小的掩码。(并通过切换情节提要中的外形尺寸按钮进行检查)

于 2013-02-07T21:27:28.590 回答
0

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

它非常简单,对我有用

于 2013-10-22T08:42:32.423 回答
0

我不建议使用 ScrollView,因为如果您使用该方法,那么 UI ELEments 将会有很多重构

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

或者

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

if([[UIScreen mainSceen]bounds].size.height>480){

//加载 iPhone 5 查看 }else{

//加载 iPhone 4 视图 }

于 2014-07-28T10:28:19.050 回答