在寫iOS應(yīng)用的時(shí)候洲脂,大體上我們有兩種方式,一種是使用xib的方式剧包,另外一種則是在代碼里使用語句布局恐锦。
第一種方式直觀,但在多人合作的時(shí)候容易發(fā)生沖突疆液,且一旦沖突就難以解決一铅。或者當(dāng)你要稍稍重構(gòu)一下布局堕油,你可能需要重新再來一次馅闽。
第二種方式典型的有使用mansory等框架進(jìn)行編程飘蚯。雖然不會(huì)出問題,但當(dāng)我們需要直觀地了解布局構(gòu)成時(shí)福也,你必須在大腦里把代碼過一遍局骤。并且布局代碼跟其他業(yè)務(wù)、邏輯代碼混到一堆暴凑,也算是不清不楚峦甩。
我今天給大家介紹一個(gè)新的布局框架——QuickVFL。它把布局的工作完完全全剝離出來现喳,并且把上述的所有問題都避免掉凯傲。
我們從一個(gè)簡(jiǎn)單的例子開始吧。
假設(shè)我們要寫一個(gè)只有一個(gè)UILabel的VC嗦篱,我們可以把布局文件寫成這樣:
{
"labelTitle":"UILabel",
":layout":"H:|-[labelTitle]-|;V:|-[labelTitle]-(>=8)-|;"
}
你應(yīng)該可以很快讀懂這個(gè)結(jié)構(gòu)冰单,并且被里面的layout的內(nèi)容嚇呆了。是的灸促,這是使用了蘋果官方的VFL寫的布局語句诫欠。其實(shí)這是使用QuickVFL唯一的門檻。如果你對(duì)VFL感興趣浴栽,點(diǎn)這里進(jìn)行學(xué)習(xí)荒叼。大約需要20分鐘。
這個(gè)VC里典鸡,只有一個(gè)UILabel被廓。上左右到super view的距離都是8。
然后我們?cè)賮砜匆幌挛覀冃枰诖a里做什么事情:
@interface ViewController ()
@property (nonatomic, weak) UILabel* labelTitle;
@end
@implementation ViewController
- (void)viewDidLoad {
? ? [super viewDidLoad];
? ? [QLayoutManager layoutForFileName:@"ViewController.json"
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? entrance:self.view
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? holder:self];
}
然后呢萝玷,然后就結(jié)束了嫁乘!QuickVFL會(huì)幫你把視圖創(chuàng)建出來,并且掛在到VC的view下面球碉,最后把控件給你映射到VC里亦渗。
如果你要寫復(fù)雜的布局,也只是需要把布局文件寫得詳細(xì)一點(diǎn)汁尺,然后加載就完了法精。
如果你想深入了解一下QuickVFL,可以點(diǎn)擊查看下面的鏈接:
QuickVFL使用DEMO:控制視圖點(diǎn)隱藏和展示