1.在执行views 'Frame 绝对布局时,会默认执行Views constraints。
1.物理屏幕是由一个个发光的点组成的,ios设备是每隔1/60秒刷新屏幕上的点。
最后一个方法,会在ifneeded之后系统立即调用。
基于UIvewcontroller的布局更新流程
加载了uibutton会发生蓝色方法执行了两次的事件(页面加载UItableview也会如此)
点击跳转之后会在disappear后再次执行updateviewconstrints
再次点击黑色视图回到当前页面会再次执行红框第二行方法
UIView的布局更新流程
更新UIviewController时候调用willlayoutsubview之后更新了uivew约束的updateConstraints,Didlayout之后调用uiview的layoutsubviews方法
uiview添加button之后又多了次红色框的uiviewcontroller布局更新
uiview的高度改变只调用了layoutsubviews的方法
AutoLayout
multiplier设置是和相对的那个控件的倍数关系
Priority数值越大这个约束的优先级越高,所以设置viewA高度的优先级999之后(变为选择性约束),约束优先级是从高到低执行的,执行完1000的之后选择性执行999的,在这个例子中,因为viewB的约束已经确定了viewA的高度这个999的约束就不会执行了。
蓝色框的为内容大小,在控件拥有固有内容大小的时候,默认读取intrinsicContentSize的值,Uimageview会读取image.size的属性,UILabel会读取test的FontFmily和FontSize的属性。
这些控件可以根据自身内容的大小,来确定控件显示内容的大小。
当红框中的优先级最大的时候,会优先显示这个控件的固有内容大小
1.第一个是显示全labelB的内容所以需要把labelB的ContentCompressionResistancePriority优先级调高。
1.第二个篮筐:高宽足够时候是否对内容大小进行拉伸显示 2.当前控件在父视图中控件无法进行完全显示的时候,是否对内容空间进行压缩。
1.约束对象的优先级低于内容的优先级时候会优先显示内容的优先级,就是右下角的图2.如果优先级相同在这里的代码就会让图片变成40pt进行更改