【问题标题】:Problems when trying to support 3.5 and 4 inch screen of iPhone尝试支持 3.5 和 4 英寸屏幕的 iPhone 时出现的问题
【发布时间】:2013-01-23 11:10:44
【问题描述】:

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

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

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

(或者也许可以为 3.5 屏幕和 4 屏幕分别设计布局)?

【问题讨论】:

  • 您是否正确设置了 struts 或 autolayout?
  • 那你应该先这样做。
  • 好吧,我正在使用自动布局和约束,但这并没有改变这样一个事实,即我能够为两种屏幕尺寸定义两种布局。
  • 我建议您使用自动布局。理想情况下,这是正确完成它的方法。为此,请尝试避免滚动视图。 raywenderlich.com/20881/beginning-auto-layout-part-1-of-2 是一个非常好的自动布局教程。但是你可以在谷歌上找到更多。一开始会很难理解,但随着你的阅读,你会发现它非常好用。

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


【解决方案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) 使用 Auto-Layout,即在每个视图元素上和之间应用约束。 (个人不太喜欢)

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

【讨论】:

  • 您能否进一步详细说明这些要点。我寻求更清晰。
【解决方案2】:

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

这很简单,对我有用

【讨论】:

    【解决方案3】:

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

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

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

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

    //加载 iPhone 5 视图 }其他{

    //加载 iPhone 4 视图 }

    【讨论】:

      猜你喜欢
      • 2014-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-13
      • 1970-01-01
      • 1970-01-01
      • 2014-09-19
      • 1970-01-01
      相关资源
      最近更新 更多