【封装富文本API,采用block实现链式编程】(block 的妙用:结合block和方法的优点实现iOS的链式编程)
1、原理文章:https://kunnan.blog.csdn.net/article/details/107835195 block 的妙用:结合block和方法的优点实现iOS的链式编程 2、功能:主要针对段落样式NSMutableParagraphStyle和富文本NSMutableAttributedString进行封装,提升开发效率 3、下载地址:https://download.csdn.net/download/u011018979/14038715 4、实现步骤:方法的返回值是block,block必须有返回值(本身对象),block参数(需要操作的值) 5、链式编程特点:
将多个操作(多行代码)通过点号(.)链接在一起成为一句代码,使代码可读性好a(1).b(2).c(3)。
xx.kn_addString(@"封装富文本API").kn_fontColor(UIColor.redColor).kn_addString(@"采用block实现链式编程").kn_fontColor(UIColor.blueColor).kn_addString(@"!");
k_PropertyStatement(strong, NSMutableAttributedString, NSString*, kn_addString)// 好处是Xcode的提示比较友好
//- (NSMutableAttributedString * _Nonnull (^)(NSString * _Nonnull))kn_addString// 不推荐直接声明getter方法,推荐上面的声明的block属性
- (NSMutableAttributedString * _Nonnull (^)(NSString * _Nonnull))kn_addString{
return ^id(NSString *str){
NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc]initWithString:str];
self.leftStr = str;
[self appendAttributedString:attStr];
return self;
};
}
pod 'ChainAttributedString'
//#import <ChainAttributedString/ChainAttributedString-umbrella.h>
#import <ChainAttributedString/NSMutableAttributedString+Chain.h>
UILabel *x = [UILabel new];
x.textAlignment = NSTextAlignmentCenter;
[self.view addSubview:x];
x.frame = self.view.frame;
x.numberOfLines = 0;
NSMutableAttributedString *xx = [[NSMutableAttributedString alloc]init];
xx.kn_addString(@"封装富文本API").kn_fontColor(UIColor.redColor).kn_addString(@"采用block实现链式编程").kn_fontColor(UIColor.blueColor).kn_addString(@"!");
x.attributedText =xx;