autoresizing
- 優(yōu)點:
- 讓橫豎屏適配相對簡單;
- 讓子控件可以跟隨父控件的行為自動發(fā)生相應的變化毕箍。
- 局限性:
- 只能解決子控件跟父控件的相對關(guān)系問題银舱;
- 不能解決兄弟控件的相對關(guān)系問題。
autolayout
iOS 6.0(Xcode4)開始萨赁,iOS7.0開始普遍使用
- 參照
- 約束
- 知識點:
- UILabel:在沒有 autolayout 之前,UILabel 的文字內(nèi)容總是居中顯示兆龙,導致頂部和底部會有一大片空缺區(qū)域杖爽;在有了 autolayout 之后,UILabel 的 bounds 默認會自動包住所有的文字內(nèi)容紫皇,頂部和底部不再會有空缺區(qū)域慰安。
- 讓父控件的高度跟隨子控件的內(nèi)容進行伸縮。
- 基于 autolayout 的動畫
- 在修改了約束之后聪铺,只要執(zhí)行下面代碼化焕,就能做動畫效果
[UIView animateWithDuration:1.5 animations:^{
[添加了約束的view layoutIfNeeded];
}];
- 添加約束的規(guī)則:
- 對于兩個同層級 view 之間的約束關(guān)系,添加到它們的父 view 上铃剔;
- 對于兩個不同層級 view 之間的約束關(guān)系撒桨,添加到它們最近的共同父 view 上;
- 對于有層次關(guān)系的兩個 view 之間的約束關(guān)系键兜,添加到層次較高的父 view 上凤类。