【问题标题】:How to optimize a very old patterned iOS app for iPhone 6 and iPhone 6-Plus如何为 iPhone 6 和 iPhone 6-Plus 优化一个非常古老的 iOS 应用程序
【发布时间】:2015-09-08 11:00:29
【问题描述】:

我有一个兼容 iPhone 5S(最高 5S)的旧 iOS 应用程序。它是通过使用常规 xib 甚至故事板构建的,并且没有使用任何自动布局概念(也没有检查 xib 的自动布局选项),现在我为 iPhone 6 和 6-plus 放置了相关的启动屏幕以更新兼容性其余两个设备和用户界面现在看起来很糟糕。是否有任何简单的方法可以将项目更新为与 iPhone 6 和 6-Plus 兼容,我的意思是即使在为 iPhone 6 和 6-plus 放置了相关的启动屏幕之后也要调整 UI(没有斜线屏幕,该应用程序在 iPhone 中运行良好6 和 6-plus 但客户希望在 Appstore 中看到他们的应用程序必须提示“此应用程序已针对 iPhone 5、iPhone 6 和 iPhone 6 Plus 进行了优化。”)。 不要认为我是一个愚蠢的要求一个简单的解决方案的人,但是我在那个应用程序中有 50 多个 xib 该怎么办,所以建议我哪个是更新项目兼容性的更好和最简单的方法。请建议。谢谢。

【问题讨论】:

  • 如果所有布局都在 XIB 中执行(而不是在具有硬编码值的代码中),那么我认为手动切换到自动布局应该不会花费很长时间。只需向所有 XIB 添加约束。我相信,即使是 50 个 XIB,也可以在 1-2 天内完成。不幸的是,我不知道更好的方法。让我们希望其他人会出现。
  • 没有别的办法,只能硬着头皮走,对不起:)
  • @FreeNickname 感谢您的快速回复。但是我有几个屏幕需要在滚动视图中加载动态视图。我将等待任何其他建议,否则我将遵循您的建议。谢谢。
  • 6 个月前,我在使用 150 XIB 应用程序时遇到了同样的大问题。在我的例子中,有一个糟糕的 MVC 架构,在很多 VC 中,视图和流(控制器)非常相互依赖,所以我必须配置所有的机制来使这个 UI 兼容。如果与您的情况相同,上帝会帮助您:) 如果不是,我建议您在易于实现时进行自动布局,如果存在复杂的视图层次结构或动画,则建议您进行自动调整蒙版。
  • 如果@FreeNickname 错误,并且不需要手动操作,iOS 会自动为您完成。布局约束是 Apple 必须引入以支持其想要销售的硬件的技术之一,而不是那些由开发策略驱动的强制转换之一。

标签: ios objective-c iphone autolayout


【解决方案1】:

所以我到处调查了这个问题,我可以提出以下建议:

1.您可以将每个视图更新为自动布局。 优点:你的应用程序的每个视图都将在你完成后自适应。在下一代 iPhone 屏幕中,您不会在 UI/UX 方面遇到任何问题。 缺点:如果视图层次结构或动画很复杂,这可能是一个非常困难和压力很大的过程。并且再次取决于观点,这将是一个比它必须的更长的过程。

2.您可以使用 AutoresizingMask 和框架设置更新每个视图。 优点:它可能比第一个过程更快。您可以更快地处理复杂的视图,并轻松实现 iPhone 6 分辨率转换。 缺点:这将是一种风险更大的方法,因为当新的 iPhone 尺寸出现时,您可能需要再次更新应用的“ever view”。

3.您可以将 Autolayout 与 Autoresizingmask 和框架设置混合使用以进行优化。 优点:它会比第二种方法慢,但根本没有那么危险,而且它可能比第一种方法快得多。 缺点:这将是一个混合修复,您需要更新您的视图,但不是全部。

从这 3 个中,我会选择第 3 个原因: 1.您将快速优化支持iPhone6。 2.您的大部分视图将自动布局,这将使您的应用更具适应性。而且不会有那么多视图需要处理。

为了选择哪种方式,我首先检查视图层次结构,然后检查该层次结构中的动画。希望这会有所帮助。

【讨论】:

  • 总结得很好。我会选择 1,因为从长远来看它会更好。如果你选择 3,你最终可能会遇到奇怪的错误,因为你真的不知道 AutoLayout 引擎如何将自动调整大小的掩码转换为约束。
猜你喜欢
  • 1970-01-01
  • 2014-12-05
  • 1970-01-01
  • 2014-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-09
相关资源
最近更新 更多