@chinese-ppmt
2018-05-09T09:40:33.000000Z
字数 1738
阅读 1539
iOS
做iOS开发,创建UI控件,必须的不说,还多,尤其你新入手一个项目。
我自己写代码,向来想省事:怎么能不一个一个属性写?带着这个问题,我刚开始创建了各种Tool来处理,后来用Category(证据在此),可Category有个烦人的问题:有些属性我不需要但是方法参数有,而有些属性我需要方法参数没有。
昨天,看到臧成威的如何利用Objective-C写一个精美的DSL,唉,挺好,就想着优化下自己的,于是就有了 PPMaker.
在此,献上对臧老师的感谢。
➊ 链式调用,代码简洁;

➋ 点语法后面有提示(Masonry是没有的 );


➌ 不需要终结词 臧老师给的示例有;
➍ 不需要助词 如Masonry中的with,这个也可以说是一个缺点吧;
➎ pod可根据需求随意选择。
➏ 不需要的属性,根本不用管 主要对比Category;
pod 'PPMaker', '~> 0.0.22'
如:UILable直接调用pp_

如下创建一个简单的UILabel对象:

maker调用,直接调UILabel对象的属性,如
text、textColor、frame等,当然也有自定义的,如intoView表示要加到哪个view上、fontSize实际上[UIFont systemFontOfSize:fontSize]的简化等等。总之,PPMaker is very easy to use.
UILabel *lb = [[UILabel alloc]initWithFrame:CGRectMake(10, 10, 300, 50)];[self.view addSubview:lb];lb.backgroundColor = [UIColor whiteColor];lb.text = @"我是一个lb";lb.textColor = [UIColor blueColor];lb.textAlignment = NSTextAlignmentCenter;lb.font = [UIFont systemFontOfSize:18];
@interface UILabel (EasyMake)+(UILabel *)lbMakeWithSuperV:(UIView *)superVframe:(CGRect)framefont:(UIFont *)fontalignment:(NSTextAlignment)alignmenttext:(NSString *)texttextColor:(UIColor *)textColor;@implementation UILabel (EasyMake)+(UILabel *)lbMakeWithSuperV:(UIView *)superVframe:(CGRect)framefont:(UIFont *)fontalignment:(NSTextAlignment)alignmenttext:(NSString *)texttextColor:(UIColor *)textColor{UILabel *lb = [[UILabel alloc]init];if (superV) {[superV addSubview:lb];}if (font) {lb.font = font;}if (text) {lb.text = text;}if (textColor) {lb.textColor = textColor;}lb.frame = frame;lb.textAlignment = alignment;return lb;}@end




PPMaker是自己写的最满意的一个库,解决了自己一直以来创建UI、配置attributedText的苦恼,这其中也参考了一些大神的的blog和开源库,在此,再次表示感谢。今天,分享自己的这个库,希望帮助像我一样的同学,其次,希望觉得好的,给个star.
当然了,这个库,我会持续更新的,有什么问题,欢迎提出来。或者谁有更好的做法,热烈欢迎告知一下,深表谢意!