iOS使用SizeClass适配不同屏幕
最近公司项目需要适配iPad,就想到SizeClass,发现Xcode9中SizeClass和我以前学的时候不一样了(很久以前了解过了),就边百度边在APP试,现在在这里分享下我的个人理解,如果有误区请各路大神赐教 !
1、介绍图
2、不同屏幕、方向对应的类型 (wAny hAny 是所有类型)
2.1、iPhone4S/SE/6/X
2.2、iPhone6Plus
2.3、iPad(分全屏、split view)
3、如何选中各种类型
3.1、所有类型
如下图,仅仅选了设备,没有选择Vary for Traits,这种类型就是 wAny hAny,在这种类型下做的操作是适配所有类型
3.2、wC hC类型(iPhone4S/SE/6/X 横屏)
3.2.1、选中设备和方向
如下图,1 选中设备iPhoneSE,2 选中横屏,3 可以看到wC hC类型出来了,4 点击Vary for Traits 开始决定是否适配wC 或 hC
3.2.2、选择wC 或 hC
如下图。Introduce Variations Based On: 如果只选中Width是 wC hAny类型,只选中Height是wAny hC类型,选中Width和Height是wC hC类型
3.2.3、进入类型模式
如图展示,已经进入wC hC类型
3.2.4、退出类型模式
操作完成后,必须点击Done Varying按钮,退出类型模式。如下图。
3.3、wC hR类型(iPhone所有设备竖屏、iPad部分Split View下一部分:可对照如上2知识点)
3.3.1、选择设备和方向
如图,1 选中iPhoneSE,2 选中横屏,3 看到wC hR类型,4 点击Vary for Traits
3.3.2、选中wC 或 hR
如下图。Introduce Variations Based On: 如果只选中Width是 wC hAny类型,只选中Height是wAny hR类型,选中Width和Height是wC hR类型 (文字似曾相识啊,哈哈,和wC hC都一样的)
3.3.3、进入类型模式、退出类型模式
所有的类型模式进入和退出都是一样的,在这就不一一描述了。
3.4、wR hC类型 (iPhone6Plus/7Plus/8Plus)
同上面类型选择
3.5、wR hR类型(iPad所有设备Full Screen)
iPad和iPhone不同的是,iPad多了个选项adaptation,有Full Screen、Split View2/3、Split View1/3,是iPad特有的分屏模式,其他操作和前面的类型操作一样。
4、一个控件适配不同类型(wC hC、wC hR、wR hC、wR hR)
4.0、在wAny hAny类型下添加一个控件
4.1、wC hC 类型下添加约束
首先切换到wC hC类型,就是选中iPhoneSE横屏的 Width和Height,然后添加约束上面10,左边0,如下图
4.2、wC hR类型下添加约束
首先取消wC hC类型,再切换到wC hR类型,就是选中iPhoneSE竖屏的 Width和Height,然后添加约束上面20,左边50,如下图
4.3、wR hC类型和wR hR类型
和前面两个类型都是一样操作的。
iPhoneSE横竖屏适配效果:
5、在不同类型添加控件
跟上面的操作大致相同,不同的是需要先切换到对应的类型下再添加控件。
例:在wC hR下添加一个UILabel,在wC hC下添加一个UIButton
效果图:
总结:
现在看来,适配iPad不会很难,分清楚wAny hAny的各个类型思路就会很清晰(刚开始那个脑袋瓜子大的)。
到此,将我所了解到的总结在这里了。第一次写博客,有些羞涩,😝。希望和大家一起学习,如果有误区还望大神们不吝赐教,先感谢了!
参考文献: