vfl(visual format language),「視覺化格式語言」。
vfl是蘋果公司為了簡化autolayout的編碼而推出的抽象語言。
cancelbutton寬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左邊緣間隔10,之後是findnext距離find間隔預設寬度;再之後是寬度不小於20的findfield,它和findnext以及父view右邊邊緣的間距都是預設寬度。(豎線「|」表示superview的邊緣)。
使用vfl來建立約束陣列效果圖如下:+(nsarray *)constraintswithvisualformat:(nsstring *)format options:(nslayoutformatoptions)opts metrics:(nsdictionary *)metrics views:(nsdictionary *)views;
format:vfl語句
opts:約束型別
metrics:vfl語句中用到的具體數值
views:vfl語句中用到的控制項
建立乙個字典(內部包含vfl語句中用到的控制項)的快捷巨集定義
nsdictionaryofvariablebindings(...)
實現**:
-(void)horizontallayout];最後對格式的字串作乙個總結介紹:[self.view addconstraints:hcons];
垂直方向的約束
nsstring *vvfl = @"v:[blueview(50)]-30-|";
nsarray *vcons = [nslayoutconstraint constraintswithvisualformat:vvfl options:0 metrics:nil views:@];
[self.view addconstraints:vcons];
}-(void)verticallayout];
[self.view addconstraints:hcons];
垂直方向的約束
nsstring *vvfl = @"v:|-30-[blueview(50)]-30-[redview(==blueview)]";
nsarray *vcons = [nslayoutconstraint constraintswithvisualformat:vvfl options:nslayoutformatalignallright metrics:nil views:@];
[self.view addconstraints:vcons];
nslayoutconstraint *redleftcon = [nslayoutconstraint constraintwithitem:redview attribute:nslayoutattributeleft relatedby:nslayoutrelationequal toitem:blueview attribute:nslayoutattributecenterx multiplier:1.0 constant:0];
[self.view addconstraint:redleftcon];
}
功能表示式
水平方向
h:垂直方向
v:views
[view]
superview|關係
>=,==,<=
空間,間隙
-優先順序
@value
iOS學習之VFL語言簡介
vfl visual format language 視覺化格式語言 vfl是蘋果公司為了簡化autolayout的編碼而推出的抽象語言。cancelbutton寬72,acceptbutton寬50,它們之間間距12 h wideview 60 700 wideview寬度大於等於60point,...
iOS開發 螢幕適配之VFL語言
1 簡介 vfl語言是蘋果給了簡化螢幕適配的工作量推出的一門語言,以不同的方向進行新增約束的 vfl比純 更加的巨集觀,它在新增約束的同時考慮不同控制項之間的關係,純 是每個控制項單獨新增約束 2 核心 v 垂直方向 h 水平方向 控制項之間的間距 如 20 代表間距為20 具體控制項 如 view...
IOS開發之自動布局 VFL語言
前言 vfl是蘋果公司為了簡化autolayout的編碼而推出的抽象語言。對於純 發燒友,值得我們去學習和了解哦。1 什麼是vfl語言 vfl全稱是visual format language,翻譯過來是 視覺化格式語言 2 vfl使用示例 h cancelbutton 72 12 acceptbu...