关于IOS的屏幕适配

来源:互联网 发布:鱼雷炸鱼淘宝有卖的吗 编辑:程序博客网 时间:2024/05/19 01:10

        在一般情况下,在设置布局UI界面的时候,经常使用的是写出大量的坐标计算代码,而为了保证在苹果手机上3.5英寸和4英寸上都能完美的UI界面效果。往往会为两种屏幕编写不同的坐标计算代码,以此来做好屏幕适配。但这种方式并非是苹果官方所推荐使用的。

       官方推荐的是使用一种叫做“自动布局(Autolayout)”的技术,专门是用来布局UI界面的。Autolayout自IOS6开始引入,但当时并未真正的得到大力推广。自IOS7(Xcode5)开始,其发展的开发效率得到很大的提升。使用Autolayout能轻松的解决屏幕适配的问题。但说实话,它使用起来还是不太方便。

       而在Autolayout之前,有Autoresizing做屏幕的适配,但是其局限性太大,有些任务还是无法完成。相比之下,Autolayout的功能比Autoresizing强大的多。


Autolayout的两个核心概念:

1>参照----

2>约束----

充分的理解这两个核心概念,对你的屏幕适配将有极大的助益。


代码实现Autolayout的注意点:

1、首先要关闭autoresizing功能,设置view的下面属性为NO

      view.translatesAutoresizingMaskIntoConstraints=NO;

2、添加约束,但添加约束之前,一定要保证相关控件都已经在各自的父控件上

3、不需要给view设置frame


代码实现Autolayout的步骤:

1、利用NSLayoutConstraint类来创建具体的约束对象

2、添加约束对象到相应的view上


而为为了简化Autolayout的使用,出现了一种VFL语言,全称是Visual Format Language,意思是“可视化格式语言”。它是苹果公司为简化Autolayout的编码而推出的抽象语言。说它抽象是因为它使用起来着实让人0疼啊!

下边几个简单的示例可以看看:

H:【cancelButton(30)】-12-【cancelButton(40)】

表示:水平方向上,cancelButton宽40,acceptButton宽40,它们之间的间距是12


H:【wideView(>=50@600)】

表示:水平方向上,wideView宽度大于等于50point,该约束条件优先级为600(优先级的最大值为1000,优先级的值越高表示约束越先被满足)


V:【redBox】-【yellowBox(==redBox)】

表示:竖直方向上,先有一个redBox,其下方紧接着有一个高度等于redBox高度的yellowBox




0 0
原创粉丝点击