● Autolayout自iOS 6開始引入,因爲Xcode 4的不給力,當時並無獲得很大推 廣佈局
● 自iOS 7(Xcode 5)開始,Autolayout的開發效率獲得很大的提高spa
● 蘋果官方也推薦開發者儘可能使用Autolayout來佈局UI界面code
● Autolayout能很輕鬆地解決屏幕適配的問題 對象
● Autolayout的2個核心概念ip
● 參照
● 約束 ci
**警告 開發
控件的frame不匹配所添加的約束, 好比 好比約束控件的寬度爲100, 而控件如今的寬度是110 it
**錯誤 io
缺少必要的約束, 好比 class
只約束了寬度和高度, 沒有約束具體的位置
兩個約束衝突, 好比
1個約束控件的寬度爲100, 1個約束控件的寬度爲110
● 代碼實現Autolayout的注意點
● 要先禁止autoresizing功能,設置view的下面屬性爲NO
view.translatesAutoresizingMaskIntoConstraints = NO; ● 添加約束以前,必定要保證相關控件都已經在各自的父控件上
● 不用再給view設置frame
+(id)constraintWithItem:(id)view1 attribute: (NSLayoutAttribute)attr1 relatedBy:(NSLayoutRelation)relation toItem:(id)view2 attribute:(NSLayoutAttribute)attr2 multiplier: (CGFloat)multiplier constant:(CGFloat)c;
● view1 :要約束的控件
● attr1 :約束的類型(作怎樣的約束) ● relation :與參照控件之間的關係
● view2 :參照的控件
● attr2 :約束的類型(作怎樣的約束) ● multiplier :乘數
● c :常量
● 自動佈局有個核心公式
obj1.property1 =(obj2.property2 * multiplier)+ constant value