前言:VFL是蘋果公司為了簡化Autolayout的編碼而推出的抽象語言。對於純代碼發燒友,值得我們去學習和瞭解哦。 1、什麼是VFL語言 VFL是蘋果公司為了簡化Autolayout的編碼而推出的抽象語言。 2、VFL使用示例: H:[cancelButton(72)]-12-[acceptBut ...
前言:VFL是蘋果公司為了簡化Autolayout的編碼而推出的抽象語言。對於純代碼發燒友,值得我們去學習和瞭解哦。
1、什麼是VFL語言
VFL全稱是Visual Format Language,翻譯過來是“可視化格式語言”。
2、VFL使用示例:
H:[cancelButton(72)]-12-[acceptButton(50)]
canelButton寬72,acceptButton寬50,它們之間間距12
H:[wideView(>=60@700)]
wideView寬度大於等於60point,該約束條件優先順序為700(優先順序最大值為1000,優先順序越高的約束越先被滿足)
V:[redBox][yellowBox(==redBox)]
豎直方向上,先有一個redBox,其下方緊接一個高度等於redBox高度的yellowBox
H:|-10-[Find]-[FindNext]-[FindField(>=20)]-|
水平方向上,Find距離父view左邊緣預設間隔寬度,之後是FindNext距離Find間隔預設寬度;
再之後是寬度不小於20的FindField,它和FindNext以及父view右邊緣的間距都是預設寬度。(豎線“|” 表示superview的邊緣)
3、VFL的使用:
使用VFL來創建約束數組
+ (NSArray *)constraintsWithVisualFormat:(NSString *)format options:(NSLayoutFormatOptions)opts metrics:(NSDictionary *)metrics views:(NSDictionary *)views;
format :VFL語句
opts :約束類型
metrics :VFL語句中用到的具體數值
views :VFL語句中用到的控制項
創建一個字典(內部包含VFL語句中用到的控制項)的快捷巨集定義
NSDictionaryOfVariableBindings(...)
關於這個的使用下麵展示個示例:
4、VFL的代碼練習示例:
需求:我們需要實現以下的效果。
在控制器view底部添加2個view,1個藍色,1個紅色
2個view寬度、高度永遠相等,高度等於50
距離父控制項左邊、右邊、下邊間距和2個view之間的間距相等,等於30
代碼實現:
源碼百度雲下載鏈接: http://pan.baidu.com/s/1eS13VAa 密碼: qf1u
展示效果(直接旋轉為橫屏):
註意編碼的事項:
轉載註明出處:http://www.cnblogs.com/goodboy-heyang/p/5359857.html ,尊重勞動成果。