NSMutableAttributedString+BAKit.h 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. /*!
  2. * @header BAKit.h
  3. * BABaseProject
  4. *
  5. * @brief BAKit
  6. *
  7. * @author 博爱
  8. * @copyright Copyright © 2016年 博爱. All rights reserved.
  9. * @version V1.0
  10. */
  11. // _ooOoo_
  12. // o8888888o
  13. // 88" . "88
  14. // (| -_- |)
  15. // O\ = /O
  16. // ____/`---'\____
  17. // . ' \\| |// `.
  18. // / \\||| : |||// \
  19. // / _||||| -:- |||||- \
  20. // | | \\\ - /// | |
  21. // | \_| ''\---/'' | |
  22. // \ .-\__ `-` ___/-. /
  23. // ___`. .' /--.--\ `. . __
  24. // ."" '< `.___\_<|>_/___.' >'"".
  25. // | | : `- \`.;`\ _ /`;.`/ - ` : | |
  26. // \ \ `-. \_ __\ /__ _/ .-` / /
  27. // ======`-.____`-.___\_____/___.-`____.-'======
  28. // `=---='
  29. //
  30. // .............................................
  31. // 佛祖镇楼 BUG辟易
  32. // 佛曰:
  33. // 写字楼里写字间,写字间里程序员;
  34. // 程序人员写程序,又拿程序换酒钱。
  35. // 酒醒只在网上坐,酒醉还来网下眠;
  36. // 酒醉酒醒日复日,网上网下年复年。
  37. // 但愿老死电脑间,不愿鞠躬老板前;
  38. // 奔驰宝马贵者趣,公交自行程序员。
  39. // 别人笑我忒疯癫,我笑自己命太贱;
  40. // 不见满街漂亮妹,哪个归得程序员?
  41. /*
  42. *********************************************************************************
  43. *
  44. * 在使用BAKit的过程中如果出现bug请及时以以下任意一种方式联系我,我会及时修复bug
  45. *
  46. * QQ : 可以添加ios开发技术群 479663605 在这里找到我(博爱1616【137361770】)
  47. * 微博 : 博爱1616
  48. * Email : 137361770@qq.com
  49. * GitHub : https://github.com/boai
  50. * 博客 : http://boaihome.com
  51. *********************************************************************************
  52. */
  53. #import <Foundation/Foundation.h>
  54. #import <UIKit/UIKit.h>
  55. @interface NSMutableAttributedString (BAKit)
  56. #pragma mark - ***** 富文本处理 类
  57. /*! 完全自定义样式 */
  58. - (void)ba_changeAttributeDict:(NSDictionary *)dict range:(NSRange)range;
  59. /*! 改变某位置的颜色 */
  60. - (void)ba_changeColor:(UIColor *)color range:(NSRange)range;
  61. /*! 设置字体所在区域背景颜色,取值为 UIColor对象,默认值为nil, 透明色 */
  62. - (void)ba_changeBackgroundColor:(UIColor *)color range:(NSRange)range;
  63. ///*! 设置连体属性,取值为NSNumber 对象(整数),0 表示没有连体字符,1 表示使用默认的连体字符, // 2 表示使用所有连体符号,默认值为 1(iOS 不支持 2) */
  64. //- (void)ba_changeLigatureWithValue:(int)value range:(NSRange)range;
  65. /*! 改变某位置的普通字号 */
  66. - (void)ba_changeSystemFont:(UIFont *)font range:(NSRange)range;
  67. /*! 设置字形倾斜度,取值为 NSNumber(float),正值右倾,负值左倾 */
  68. - (void)ba_changeObliquenessValue:(NSNumber *)value range:(NSRange)range;
  69. /*! 设置文字排版方向,取值为 NSNumber 对象(整数),0 表示横排文本,1 表示竖排文本 */
  70. - (void)ba_changeVerticalGlyphFormValue:(NSNumber *)value range:(NSRange)range;
  71. /*! 设置文字书写方向,从左向右书写或者从右向左书写 */
  72. - (void)ba_changeWritingDirectionStyle:(NSWritingDirection)style;
  73. /*! 改变某位置的行距 */
  74. - (void)ba_changeLineSpacing:(CGFloat)spacing
  75. from:(NSInteger)loc
  76. length:(NSInteger)length;
  77. /*! 改变某位置的段落距离 */
  78. - (void)ba_changeParagraphSpacing:(CGFloat)spacing
  79. from:(NSInteger)loc
  80. length:(NSInteger)length;
  81. /*! 改变段的顶部和文本内容的开头之间的距离 */
  82. - (void)ba_changeBeforeLparagraphSpacing:(CGFloat)spacing
  83. from:(NSInteger)loc
  84. length:(NSInteger)length;
  85. /*! 设置下划线样式:根据枚举选择 */
  86. - (void)ba_changeUnderlineStyle:(NSUnderlineStyle)style color:(UIColor *)color Range:(NSRange)range;
  87. /*! 全部加下划线 设置下划线样式:根据枚举选择 */
  88. - (void)ba_changeUnderlineAtAllStyle:(NSUnderlineStyle)style color:(UIColor *)color;
  89. /*! 设置删除线样式:根据枚举选择 */
  90. - (void)ba_changeStrikethroughStyle:(NSUnderlineStyle)style color:(UIColor *)color Range:(NSRange)range;
  91. /*! 全部添加删除线 设置删除线样式:根据枚举选择 */
  92. - (void)ba_changeStrikethroughAtAllStyle:(NSUnderlineStyle)style color:(UIColor *)color;
  93. /*! 设定字符间距,取值为 NSNumber 对象(整数),正值间距加宽,负值间距变窄 */
  94. - (void)ba_changeKernWithValue:(NSNumber *)value Range:(NSRange)range;
  95. /*! 根据位置设置文本横向拉伸属性,取值为 NSNumber (float),正值横向拉伸文本,负值横向压缩文本 */
  96. - (void)ba_changeExpansionWithValue:(NSNumber *)value Range:(NSRange)range;
  97. #pragma mark
  98. /*! 根据位置添加阴影效果 */
  99. - (void)ba_changeShadowWithShadow:(NSShadow *)shadow Range:(NSRange)range;
  100. /*! 根据位置修改描边颜色 */
  101. - (void)ba_changeStrokeColorWithColor:(UIColor *)strokeColor
  102. strokeWidth:(NSNumber *)strokeWidth
  103. Range:(NSRange)range;
  104. /*!
  105. *
  106. * 实例化 NSMutableAttributedString 字符串
  107. *
  108. * @param texts 用于存储所需设置字符串的数组(根据所需自定义类型分组)
  109. * @param attrsArray 富文本属性样式的集合(数组元素是texts的相应文本的属性--字典)
  110. * @param space texts文本之间的间距数组 1 代表一个空格的距离
  111. *
  112. * @return NSMutableAttributedString实例
  113. */
  114. - (instancetype)initWithStrings:(NSArray <NSString *>*)texts
  115. attributesArray:(NSArray <NSDictionary<NSString *,id>*>*)attrsArray
  116. space:(NSArray <NSNumber *>*)space;
  117. @end