作为iOS应用开发者一定对Masonry非常了解,它的链式写法使得布局工作得心应手,高内聚的代码块也使得代码更加整洁清爽,相比于Auto Layout大大提高了开发效率。那么我们又如何汲取这种链式编程的思想,从而封装出简单好用的工具类呢?本期笔者通过对iOS中的常用富文本的一些封装,来做些简单的阐述,期望能够抛砖引玉。
我们在使用NSMutableAttributedString的时候,动辄需要写各种段落样式,添加各种AttributeName,value,range,诸如

我们不仅要记住各种AttributeName,还要计算range,除此之外我们每添加一种样式,又得重复一次这样的过程,使得大段大段的代码极其繁琐。
所以笔者想到能不能像Masonry,链式调用,代码内聚,清爽干净。我想到的第一步是给NSString添加一个分类方法,像这样。

用字符串调用,返回值是富文本,通过中间件make链式添加样式。这个中间件make封装了NSMutableAttributedString的一些常用基本样式。

最后使用方法做后效果如下


最后demo地址:YsyRichText
如果你用着不错,请帮忙给笔者点亮star。
网友评论