在写iOS应用的时候,大体上我们有两种方式,一种是使用xib的方式,另外一种则是在代码里使用语句布局。
第一种方式直观,但在多人合作的时候容易发生冲突,且一旦冲突就难以解决。或者当你要稍稍重构一下布局,你可能需要重新再来一次。
第二种方式典型的有使用mansory等框架进行编程。虽然不会出问题,但当我们需要直观地了解布局构成时,你必须在大脑里把代码过一遍。并且布局代码跟其他业务、逻辑代码混到一堆,也算是不清不楚。
我今天给大家介绍一个新的布局框架——QuickVFL。它把布局的工作完完全全剥离出来,并且把上述的所有问题都避免掉。
我们从一个简单的例子开始吧。
假设我们要写一个只有一个UILabel的VC,我们可以把布局文件写成这样:
{
"labelTitle":"UILabel",
":layout":"H:|-[labelTitle]-|;V:|-[labelTitle]-(>=8)-|;"
}
你应该可以很快读懂这个结构,并且被里面的layout的内容吓呆了。是的,这是使用了苹果官方的VFL写的布局语句。其实这是使用QuickVFL唯一的门槛。如果你对VFL感兴趣,点这里进行学习。大约需要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];
}
然后呢,然后就结束了!QuickVFL会帮你把视图创建出来,并且挂在到VC的view下面,最后把控件给你映射到VC里。
如果你要写复杂的布局,也只是需要把布局文件写得详细一点,然后加载就完了。
如果你想深入了解一下QuickVFL,可以点击查看下面的链接: