在寫iOS應(yīng)用的時候,大體上我們有兩種方式,一種是使用xib的方式,另外一種則是在代碼里使用語句布局。
第一種方式直觀,但在多人合作的時候容易發(fā)生沖突,且一旦沖突就難以解決。或者當你要稍稍重構(gòu)一下布局,你可能需要重新再來一次。
第二種方式典型的有使用mansory等框架進行編程。雖然不會出問題,但當我們需要直觀地了解布局構(gòu)成時,你必須在大腦里把代碼過一遍。并且布局代碼跟其他業(yè)務(wù)、邏輯代碼混到一堆,也算是不清不楚。
我今天給大家介紹一個新的布局框架——QuickVFL。它把布局的工作完完全全剝離出來,并且把上述的所有問題都避免掉。
我們從一個簡單的例子開始吧。
假設(shè)我們要寫一個只有一個UILabel的VC,我們可以把布局文件寫成這樣:
{
"labelTitle":"UILabel",
":layout":"H:|-[labelTitle]-|;V:|-[labelTitle]-(>=8)-|;"
}
你應(yīng)該可以很快讀懂這個結(jié)構(gòu),并且被里面的layout的內(nèi)容嚇呆了。是的,這是使用了蘋果官方的VFL寫的布局語句。其實這是使用QuickVFL唯一的門檻。如果你對VFL感興趣,點這里進行學(xué)習(xí)。大約需要20分鐘。
這個VC里,只有一個UILabel。上左右到super view的距離都是8。
然后我們再來看一下我們需要在代碼里做什么事情:
@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會幫你把視圖創(chuàng)建出來,并且掛在到VC的view下面,最后把控件給你映射到VC里。
如果你要寫復(fù)雜的布局,也只是需要把布局文件寫得詳細一點,然后加載就完了。
如果你想深入了解一下QuickVFL,可以點擊查看下面的鏈接: