5

我想问一个关于高度混淆(至少对我而言)主题的问题 - Xcode 6 中的大小类。我一直试图全面了解这一切是如何工作的,但我仍然不清楚。

在 Xcode 6 和新 iPhone 之前,一切都非常简单。对于非 Retina 和 Retina,显示器使我们能够始终使用相同的分辨率 320x480(或更高设备的 568)。标准和@2x 资产非常有意义。然而,现在我们拥有相同比例(几乎相同)的大屏幕,但工作区域不再​​相同。

大小类应该使事情成为可能,以将所有内容都放在一个故事板中。但是等等.. iPhone 6 使用@2x 资源,据我了解,这意味着该设备上的图形看起来会比 iPhone 5/5S 上的小。iPhone 6 Plus 使用@3x 资源,它们看起来也不一样了。例如,似乎不可能使某个按钮相对于屏幕的整个宽度始终具有相同的大小。当然,除非我们对此进行编码,但这会使 Size Classes 无用。

我是正确理解事物还是遗漏了什么?很高兴听到你们如何看待它。也许你知道一些好的教程?我还没有找到任何可以解释我的怀疑的东西。

提前致谢!

4

2 回答 2

4

您可以使用不同方法的组合来完成您在此处谈论的大部分内容:

  1. 不同类型设备的尺寸等级,以涵盖 UI 配置中的大多数大规模变化(例如,iPad 和 iPhone 之间的差异)。例如,您可以使用它来更改是否显示侧边栏。

  2. 特定于各个尺寸类别的自动布局规则。您可以为不同的尺寸类别添加不同的自动布局规则以调整布局(例如,您可以通过这种方式在水平的按钮行和堆叠的按钮列之间切换,因为您现在可以为不同的尺寸类别设置不同的自动布局规则)。一旦您意识到不再需要对所有尺寸类别使用相同的自动布局规则,这种技术就非常强大。

  3. 资产目录自动切换不同支持的分辨率等的预渲染图形。另请注意,由于许多旧设备实际上并不支持 iOS 8,因此您无需再包含真正的低分辨率版本,除非您需要广泛的向后兼容性(如果您这样做,则并非所有尺寸等级功能都可用反正)。我刚刚制作了一个只支持 iOS 8 的新版本的应用程序,因为旧版本的用户只会得到以前版本的应用程序。

  4. 可调整大小的图像:您现在可以在图像中指定可调整大小的区域,以控制它们在应用于 UIButtons 等可能会根据自动布局规则改变大小的东西时如何拉伸。(这是 Android 已经有很长一段时间的一个功能,所以它在 iOS 上很受欢迎。)这意味着您可以在更广泛的屏幕尺寸上让画面看起来不错,而无需太多单独的图像或对尺寸进行尽可能精确的控制UI 元素。

  5. 视图控制器中的编程代码可以调整您无法以任何其他方式实现的任何内容。

虽然您确实没有对哪些设备显示具有大小类的确切布局的精细控制,但我发现这并不是您想象的那么大的问题,因为大小类允许您的视图控制器非常无缝地适应不同的设备。自动布局和大小类的组合特别强大。这实际上可能是一件好事,因为这意味着每当苹果推出不同的屏幕尺寸时,新的手动配置就会减少。现在转换有点痛苦,但从长远来看可能值得。您只需要考虑如何设置一些不同的东西。它有点像 Android,他们长期以来不得不与许多不同的设备屏幕尺寸和分辨率抗衡,但它'

于 2015-01-14T17:21:23.973 回答
0

尺寸等级不仅仅是为了适应更大的屏幕尺寸,它们是为了完全不同的布局而存在的。就像在 iPhone 上一样,您可能会显示一个项目并点击以进入下一个屏幕以获取更多信息,但在 iPad 上您会在同一屏幕上显示两者。

对于小的调整,您使用自动布局,每个尺寸等级具有不同的布局,并且每个尺寸等级中的不同屏幕尺寸由自动布局处理。

于 2016-02-25T17:07:43.537 回答