UIKit控件的链式编程
最近整理项目的文件时,发现有许多基础的知识和个人觉得比较使用的东西,今天拿出来给大家分享。今天主要分享的是UIKit控件的链式编程
传统的写法
UILabel *l1 = [[UILabel alloc] initWithFrame:CGRectMake(70, 100, 300, 20)]; l1.font = [UIFont systemFontOfSize:17]; l1.textColor = [UIColor redColor]; l1.text = @"cfhjknlladslfdnsbsjnmfdsnmfnbnmn"; [self.view addSubview:l1];
这样的写法看起来不够整洁,而且重复的代码比较多,不过开发中,通常都是复制粘贴的。
现在的写法
我在项目中结合链式编程的思想,将一些UI控件的写法简易一点,让代码看起来更加整洁
UILabel *la1 = [UILabel new]; [la1 yw_makeChains:^(YWChainMaker *make) { make.frame(CGRectMake(70, 100, 300, 20)) .font(17) .textColor(UIColor.redColor) // .textColorColorWithRgbValue(0x777777) //或者直接使用16进制 .text(@"cfhjknlladslfdnsbsjnmfdsnmfnbnmn") .addToSuperView(self.view); }];
这个写法是不是挺像Masonry的写法,如果你不喜欢有个大的括号时,还可以这样写,如下:
UILabel *la2 = [UILabel new]; la2.yw_make .frame(CGRectMake(70, 130, 300, 20)) .addToSuperView(self.view) .font(14) .textColor([UIColor redColor]) .text(@"去除block的写法");
目前从项目中整理出来的UILabel/UIButton/UITextField/UITextView/UIImageView/UITableView的链式编程,后续会整理更多出来。
大家觉得要是有用,请star个星!
先供上github地址:https://github.com/flyOfYW/YWChainMaker