kon*_*ier 5 xcode ios autolayout size-classes
我想问一个关于高度混淆(至少对我而言)主题的问题 - Xcode 6中的大小类.我一直试图全面了解这一切是如何工作的,但我仍然不清楚.
在Xcode 6和新款iPhone之前,一切都非常简单.To,Non-Retina和Retina,显示器使我们能够始终使用相同的分辨率320x480(或更高的设备568).标准和@ 2x资产非常有意义.然而,现在我们有相同比例的大屁股屏幕(几乎相同),但工作区域不再相同.
大小类应该可以使所有内容适合一个故事板.但等等.. iPhone 6使用@ 2x资产,据我所知,这意味着该设备上的图形看起来比iPhone 5/5S上的图形要小.而且iPhone 6 Plus使用@ 3x资产,这看起来也不一样.例如,似乎不可能使某个按钮总是与屏幕的全宽度相同.除非我们编码当然,但这会使大小类无用.
我是否理解正确的事情或者我错过了什么?听听大家的看法会很棒.也许你知道一些很好的教程?我没有找到任何可以解释我怀疑的东西.
提前致谢!
您可以使用不同方法的组合来完成您在这里讨论的大部分内容:
不同类型设备的尺寸类别,以涵盖 UI 配置中的大多数大规模更改(例如,iPad 和 iPhone 之间的差异)。例如,您可以使用它来更改是否显示侧边栏。
特定于各个尺寸类别的自动布局规则。您可以为不同的尺寸类别添加不同的自动布局规则,以便调整布局(例如,您可以通过这种方式在水平行按钮和堆叠按钮列之间切换,因为您现在可以为不同的尺寸类别使用不同的自动布局规则)。一旦您意识到不再需要对所有尺寸类别使用相同的自动布局规则,此技术就非常强大。
资产目录可自动切换不同支持分辨率等的预渲染图形。另请注意,由于许多较旧的设备实际上并不支持 iOS 8,因此您不再需要包含真正的低分辨率版本,除非您需要广泛的向后兼容性(如果您这样做,则并非所有尺寸类别功能都可用反正)。我刚刚制作了一个仅支持 iOS 8 的新版本应用程序,因为旧版本的用户只能获得该应用程序的先前版本。
可调整大小的图像:您现在可以在图像中指定可调整大小的区域,以便控制它们在应用于 UIButtons 等可能根据自动布局规则更改大小的内容时如何拉伸。(这是 Android 已经拥有相当长一段时间的功能,因此在 iOS 上很受欢迎。)这意味着您可以让东西在更广泛的屏幕尺寸上看起来不错,而无需那么多单独的图像或对尺寸的精确控制UI 元素。
视图控制器中的编程代码可以调整任何其他方式无法实现的内容。
虽然您确实无法对哪些设备显示尺寸类别的确切布局进行精细控制,但我发现这并不是您想象的那么大问题,因为尺寸类别让您的视图控制器非常无缝地适应不同的设备。自动布局和尺寸类别的组合特别强大。这实际上可能是一件好事,因为每当苹果推出不同的屏幕尺寸时,这意味着新的手动配置就会减少。现在转换有点痛苦,但从长远来看可能是值得的。您只需要考虑如何以不同的方式进行设置即可。它有点像 Android,他们长期以来一直不得不应对许多不同的设备屏幕尺寸和分辨率,但这也是平台的自然演变,你无法真正精确地为每个物理设备进行设计作为一个实际问题(不过,您仍然应该在模拟器中对它们进行测试)。