关于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
- 关于IOS的屏幕适配
- iOS关于适配屏幕的问题_1
- iOS关于适配屏幕的问题_2
- iOS--关于屏幕的方向
- IOS屏幕的适配
- iOS 关于size classes的一些核心背景--多屏幕适配的问题
- iOS关于iPhone6和iPhone6 Plus的屏幕适配问题
- iOS关于iPhone6和iPhone6 Plus的屏幕适配问题
- iOS 关于字体根据不同屏幕尺寸等比适配的问题
- iOS 关于字体根据不同屏幕尺寸等比适配
- 关于IOS屏幕的旋转问题
- 关于IOS的屏幕高度宏
- 关于iOS屏幕截图的坑
- iOS 屏幕适配
- iOS屏幕适配
- ios 屏幕适配
- IOS屏幕适配
- ios 屏幕适配
- DOS命令字典..收藏
- 自己写的一个入栈程序
- Android自定义ListView或GridView适配器Adapter的getView方法不执行的问题
- Dancing Links题集
- Android 之 远程图片获取和本地缓存
- 关于IOS的屏幕适配
- JavaScript-创建第一个自己的类库
- Jmock 基本用法
- 13个砝码中,只有一个与其他12个砝码不同且不知该砝码是轻是重,用3次将其称出的方法。(还有27个、37个)
- windows下cuda的安装
- Scala第2章习题PART3
- 解决VirtualBox下CentOS分辨率全屏设置
- 学校宣传片
- 网易公开课讲义1 Linear Regression 笔记