欢迎来到天天文库
浏览记录
ID:37751220
大小:36.65 KB
页数:12页
时间:2019-05-30
《关于自动适配的那点事》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、关于自动适配的那点事自iphone4s以后,苹果先后推出了iphone5、iphone5s、iphone6、iphone6plus、iphone6s、iphone6splus这些新的机型,它们的屏幕大小各有所异,从此给我们开发者留下了一个蛋疼的问题:屏幕适配。1、显示坐标定位方式:在4和4s的时代,我们采用显示坐标定位方式设置一个视图的坐标,比如view.frame=CGRectMake(20,70,160,160);在当时显然是没有任何问题的,因为手机屏幕的大小是固定的,屏宽320像素,屏高480像素。2、aut
2、oresizingMask:自iphone5以后,手机屏幕的高度变成了568像素,有时候我们定义的视图在iphone4和4s上运行起来位置摆放正常,但是在5和5s上就不那么和谐了,这就对开发者提出了适配的任务:如何让视图在不同大小的屏幕上恰到好处的展现出来呢?其实苹果最先推出来的跟适配沾边的技术autoresizingMask。autoresizingMask能给出子视图相对于父亲视图的对齐方式与缩放系数,当父视图发生变化时,通过每个视图autoresizingMask即可自动得出新的位置。使用步骤是第一步:设置父
3、视图的autoresizesSubviews属性为YES,superView.autoresizesSubviews=YES;,否则后面的autoresizingMask都将失效。第二步:设置子视图的autoresizingMask,subView.autoresizingMask=UIViewAutoresizingFlexibleTopMargin
4、UIViewAutoresizingFlexibleBottomMargin。这里面的autoresizingMask属性是一个枚举值,枚举值各项含义如下:UIVi
5、ewAutoresizingNone:就是不自动调整。UIViewAutoresizingFlexibleLeftMargin:自动调整与superView左边的距离,保证与superView右边的距离不变。UIViewAutoresizingFlexibleRightMargin:自动调整与superView的右边距离,保证与superView左边的距离不变。UIViewAutoresizingFlexibleTopMargin:自动调整与superView顶部的距离,保证与superView底部的距离不变。UI
6、ViewAutoresizingFlexibleBottomMargin:自动调整与superView底部的距离,也就是说,与superView顶部的距离不变。UIViewAutoresizingFlexibleWidth:自动调整自己的宽度,保证与superView左边和右边的距离不变。UIViewAutoresizingFlexibleHeight:自动调整自己的高度,保证与superView顶部和底部的距离不变。UIViewAutoresizingFlexibleLeftMargin
7、UIViewAutore
8、sizingFlexibleRightMargin:自动调整与superView左边的距离,保证与左边的距离和右边的距离和原来距左边和右边的距离的比例不变。比如原来距离为20,30,调整后的距离应为68,102,即68/20=102/30。遗憾的是这些技术的缺陷也十分明显,是一个不成熟的技术,原因有两点:(1)、autoresizingMask缩放比例是UIKit内部计算的,开发者无法指定缩放比例的精确值。(2)、变化规则只能基于父子视图,无法解决兄弟视图之间的位置关系。所以在iOS6推出自动布局(AutoLayo
9、ut)技术后,autoresizingMask成为一项鸡肋技术。可以用食之无味,弃之可惜来形容。3、AutoLayout-可视化编程自动布局:关于AutoLayout技术有可视化编程和纯代码两种方式,本处先讲解可视化的方式。自动布局是对autoresizingMask的进一步改进,它允许开发者在界面上的任意两个视图之间建立精确的线性变化规则。所谓线性变化就是数学中的一次函数,即:y=m*x+c其中x和y是界面中任意两个视图的某个布局属性,m为比例系数,c为常量。在storyboard或者xib中设置约束的方案有三种
10、:(1)、在设计器中长按Control键拖动控件。(2)、在左侧文档结构窗口中长按Control键拖动控件。(3)、点击设计器底部图标,pin设置距离约束、固定宽高约束、等高等宽和宽高比约束,align设置对齐约束。注意:方案(1)和(2)中同时按住Shift键与Option键可以同时设置多个约束。前面我们提到了一个重要概念就是约束,约束有很多种类,现列出如
此文档下载收益归作者所有