iOS使用SizeClass适配不同屏幕

作者: LINGSHOW | 来源:发表于2018-01-21 20:44 被阅读798次

            最近公司项目需要适配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的各个类型思路就会很清晰(刚开始那个脑袋瓜子大的)。

            到此,将我所了解到的总结在这里了。第一次写博客,有些羞涩,😝。希望和大家一起学习,如果有误区还望大神们不吝赐教,先感谢了!

    参考文献:

    iOS8--关于regular和compact的理解

    autolayout Compact,Regular,Any 解析

    iOS 8 AutoLayout与Size Class自悟

    相关文章

      网友评论

      本文标题:iOS使用SizeClass适配不同屏幕

      本文链接:https://www.haomeiwen.com/subject/yomlhttx.html