登录 当即注册
金钱:

Code4App-188bet注册-iOS 开源代码库-www.188bet.com实例查找-iOS特效示例-www.188bet.com比方下载-Code4App.com

ios 188bet注册 [仿制链接]

2019-2-18 10:40
Torr 阅览:1100 谈论:0 赞:0
Tag:  

简介

信任大部分188bet注册人员都运用过Masonry(强壮束缚封装结构),对它的make.left.equalTo()或许make.left.equalTo().and.right.equalTo()应该有很深入的形象吧,这种编程办法就叫链式编程。从它的语法能够看出它的使命办法是一步步的“点”出来,然后履行,可读性和操作性都很高,那么这是怎样完成的?

剖析与完成

先来看看它的“点”语法:在ios中,“点”语法很常见,比方我要创立一个label,并设置一些特点:

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 300, 60, 30)];
label.text = @"";
label.font = [UIFont systemFontOfSize:16];
label.textColor = [UIColor redColor];
[self.view addSubview:label];

创立好后,感觉每次都要用label目标“点”特点出来设置,有点费事。那可不能够像Masonry那样,一个目标,直接“点”一连窜使命出来完成,是不是就要便利一些。比方像下面这样:

label.text(@"喔喔喔").textFont([UIFont fontOfSize:16]).textColor([UIColor redColor]);

有Masonry在前,不必想太多,那肯定是能够完成的,现在就来看看怎么一步步完成吧。
都知道,目标“点”特点(如:label.text),已然目标才干调出特点,那咱们在设置text的办法中带着一个该目标,是不是就能继续往下调用。现在我从头声明一个text办法,让其带着一个label目标(完成文件为UILabel的类别文件):

- (UILabel *(^)(NSString *text))cp_text;

加个前缀cp是为了区别体系的text办法

该办法的回来值是一个block,block内又回来了一个UILabel目标,^表明这是一个代码块,NSString *text这是传入的参数。再来看看完成:

- (UILabel *(^)(NSString *text))cp_text
{    return ^(NSString *text)
    {        self.text = text;        return self;
    };
}

全体回来了一个block,block内部履行的逻辑便是对label.text的赋值和回来该目标,回来目标便是用于接连调用其他相似的办法。依照这种思路,再来完成UILabel的其他几个办法:

- (UILabel *(^)(UIColor *color))cp_textColor
{    return ^(UIColor *color)
    {        self.textColor = color;        return self;
    };
}

- (UILabel *(^)(UIFont *font))cp_textFont
{    return ^(UIFont *font)
    {        self.font = font;        return self;
    };
}

现在来看看接连调用:

UILabel *label = UILabel.cp_init.cp_frame(100,300,60,30);
label.cp_text(@"喔喔喔").cp_textFont(SFONT(16)).cp_textColor(RedColor);self.view.cp_addSubView(label);

为了语法一致,我对其初始化办法也封装了一次,使其全体看起来比较连接,流通。

总结

链式编程在ios oc中运用频率并不高,不过在其环环相扣的语法上来看,某些时分调用起来的确很便利。我写了个demo,封装了UIView,UILabel,UIButton的一些特点和办法,感兴趣的能够去我的项目地址下载下来看看。
git项目地址:https://github.com/chenfengxiaoxixi/TextSpecLib

共享到:
我来说两句
facelist
您需求登录后才干够谈论 登录 | 当即注册
一切谈论(0)
封闭

每日头条

经过邮件订阅最新 Code4App 信息
上一条 /4 下一条
联络咱们
封闭
协作电话:
13802416937
Email:
[email protected]
商务商场协作/投稿
问题反应及协助
联络咱们

广告投进| 广东互联网违法和不良信息告发中心|我国互联网告发中心|Github|请求友链|手机版|Code4App ( 粤ICP备15117877号-1 )

回来顶部