前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS封装富文本API,采用block实现链式编程(结合block和方法的优点实现iOS的链式编程)【修订版】

iOS封装富文本API,采用block实现链式编程(结合block和方法的优点实现iOS的链式编程)【修订版】

作者头像
公众号iOS逆向
发布2021-07-05 21:10:59
7060
发布2021-07-05 21:10:59
举报
文章被收录于专栏:iOS逆向与安全iOS逆向与安全
  • 1.1 关键步骤
  • 1.2 使用方法
  • 2.1 使用宏进行block属性的声明
  • 2.2 代码
  • 3.1 自定义相机
  • 3.2 展示信用卡标签

前言

【封装富文本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)。

代码语言:javascript
复制
    xx.kn_addString(@"封装富文本API").kn_fontColor(UIColor.redColor).kn_addString(@"采用block实现链式编程").kn_fontColor(UIColor.blueColor).kn_addString(@"!");

I、封装富文本API,采用block实现链式编程的核心思想

1.1 关键步骤

  • 声明block属性
代码语言:javascript
复制
k_PropertyStatement(strong, NSMutableAttributedString, NSString*, kn_addString)// 好处是Xcode的提示比较友好
//- (NSMutableAttributedString * _Nonnull (^)(NSString * _Nonnull))kn_addString// 不推荐直接声明getter方法,推荐上面的声明的block属性

  • 实现getter方法
代码语言:javascript
复制
- (NSMutableAttributedString * _Nonnull (^)(NSString * _Nonnull))kn_addString{
    return ^id(NSString *str){
        NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc]initWithString:str];
        self.leftStr = str;
        [self appendAttributedString:attStr];
        return self;
    };
}

1.2 使用方法

  • Installation
代码语言:javascript
复制
pod 'ChainAttributedString'

  • 声明
代码语言:javascript
复制
//#import <ChainAttributedString/ChainAttributedString-umbrella.h>

#import <ChainAttributedString/NSMutableAttributedString+Chain.h>

  • demo
代码语言:javascript
复制


    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;
    

II、实现细节

2.1 使用宏进行block属性的声明

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-06-09,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 iOS逆向 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • I、封装富文本API,采用block实现链式编程的核心思想
    • 1.1 关键步骤
      • 1.2 使用方法
      • II、实现细节
        • 2.1 使用宏进行block属性的声明
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
        http://www.vxiaotou.com