自动布局学习
传统的布局方式
iOS6之前 autosize(依赖于x,y坐标!宽和高随父视图变换而变换):设置视图和父视图之间尺寸的关系 。代码和xib都可以设置,自动布局出来为了替代这个特性。
局限性:
1、不能设置视图与视图之间的关系
2、不能设置尺寸放大,缩小的最大值和最小值iOS6之后 自动布局 并不是所见及所得,最上面从状态栏下面开始。在设置下边的约束的时候,大于等于才能看见。而不是小于等于。如果绝对距离和设置的约束不一致,则会出现+1类似的线。其实没什么影响的。考虑有什么让他被挤压的需求没。
可以设置一个空隙,及高度宽度的约束。
容易产生约束冲突的设置
代码约束 这样在初始化控件的时候,x,y就不重要了。因为是通过约束来确定位置
blog.ibireme.com/2014/09/16/adapted_to_iphone6/
64位cpu中子类不能和父类的属性名一样,可以通过@synthesize +新名字。
可以通过获取当前设备的分辨率来判断是否开始高分辨模式- iPhone6
通过创建启动的xib,来确定是否使用呢高分辨率
横屏不会去刷新屏幕frame,也就是宽高不会改变。所以旋转后看起来没有变化。
layoutsubview调用的时机:1、手动调用setneeddisplay
2、当前视图的宽和高变换,意味着子视图需要重新布局。
特别注意,不要再layoutsubview调用frame。
为了看到控件的frame,一般在设置界面的时候设置背景以便区分控制器中有一个当它viewl执行layoutsubview的时候会调用的方法方法,在这个方法里面可是刷新一次,当view改变的时候,比如横屏
横屏之后会调用tablview里面的方法
iOS8 size classes