编程

当前位置:澳门新莆京娱乐官网 > 编程 > 富文本常用封装新澳门葡京赌场

富文本常用封装新澳门葡京赌场

来源:http://www.drgigabytes.com 作者:澳门新莆京娱乐官网 时间:2020-05-06 05:17

近来时时蒙受关于富文本的一对须求,特此包裹了多少个最常用的API享用给我们,但授之以鱼不及授之以渔,接下去会顺便谈谈NSAttributedString,确认保证您读了本篇小说能够本人包裹关于富文本的API,本文封装API的亲自去做德姆o再此,拿去用呢!骚年们!

  • 供给:在我们司空见惯花销中,有些句子中会有变动一些字颜色的须求,当然颜色相符来说正是为了器重重申,常为同一种颜色,所以上边代码是单独退换一句话中的有个别字的颜色
/** * 单纯改变一句话中的某些字的颜色 * * @param color 需要改变成的颜色 * @param totalStr 总的字符串 * @param subArray 需要改变颜色的文字数组 * * @return 生成的富文本 */+ (NSMutableAttributedString *)ls_changeCorlorWithColor:(UIColor *)color TotalString:(NSString *)totalStr SubStringArray:(NSArray *)subArray { NSMutableAttributedString *attributedStr = [[NSMutableAttributedString alloc] initWithString:totalStr]; for (NSString *rangeStr in subArray) { NSRange range = [totalStr rangeOfString:rangeStr options:NSBackwardsSearch]; [attributedStr addAttribute:NSForegroundColorAttributeName value:color range:range]; } return attributedStr;}
  • 急需:供给改革字间隔来适应全部UI
/** * 单纯改变句子的字间距(需要 <CoreText/CoreText.h>) * * @param totalString 需要更改的字符串 * @param space 字间距 * * @return 生成的富文本 */+ (NSMutableAttributedString *)ls_changeSpaceWithTotalString:(NSString *)totalString Space:space { NSMutableAttributedString *attributedStr = [[NSMutableAttributedString alloc] initWithString:totalString]; long number = space; CFNumberRef num = CFNumberCreate(kCFAllocatorDefault,kCFNumberSInt8Type,&number); [attributedStr addAttribute:kCTKernAttributeName value:(__bridge id)num range:NSMakeRange(0,[attributedStr length])]; CFRelease; return attributedStr;}
  • 要求:必要转移行间距来适应全体UI
/** * 单纯改变段落的行间距 * * @param totalString 需要更改的字符串 * @param lineSpace 行间距 * * @return 生成的富文本 */+ (NSMutableAttributedString *)ls_changeLineSpaceWithTotalString:(NSString *)totalString LineSpace:lineSpace { NSMutableAttributedString *attributedStr = [[NSMutableAttributedString alloc] initWithString:totalString]; NSMutableParagraphStyle * paragraphStyle = [[NSMutableParagraphStyle alloc] init]; [paragraphStyle setLineSpacing:lineSpace]; [attributedStr addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [totalString length])]; return attributedStr;}
  • 供给:同期改正行间隔和字间隔
/** * 同时更改行间距和字间距 * * @param totalString 需要改变的字符串 * @param lineSpace 行间距 * @param textSpace 字间距 * * @return 生成的富文本 */+ (NSMutableAttributedString *)ls_changeLineAndTextSpaceWithTotalString:(NSString *)totalString LineSpace:lineSpace textSpace:textSpace { NSMutableAttributedString *attributedStr = [[NSMutableAttributedString alloc] initWithString:totalString]; NSMutableParagraphStyle * paragraphStyle = [[NSMutableParagraphStyle alloc] init]; [paragraphStyle setLineSpacing:lineSpace]; [attributedStr addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [totalString length])]; long number = textSpace; CFNumberRef num = CFNumberCreate(kCFAllocatorDefault,kCFNumberSInt8Type,&number); [attributedStr addAttribute:kCTKernAttributeName value:(__bridge id)num range:NSMakeRange(0,[attributedStr length])]; CFRelease; return attributedStr;}
  • 急需:改进某个文字的水彩并校勘其字体,优秀珍视重申
/** * 改变某些文字的颜色 并单独设置其字体 * * @param font 设置的字体 * @param color 颜色 * @param totalString 总的字符串 * @param subArray 想要变色的字符数组 * * @return 生成的富文本 */+ (NSMutableAttributedString *)ls_changeFontAndColor:font Color:(UIColor *)color TotalString:(NSString *)totalString SubStringArray:(NSArray *)subArray { NSMutableAttributedString *attributedStr = [[NSMutableAttributedString alloc] initWithString:totalString]; for (NSString *rangeStr in subArray) { NSRange range = [totalString rangeOfString:rangeStr options:NSBackwardsSearch]; [attributedStr addAttribute:NSForegroundColorAttributeName value:color range:range]; [attributedStr addAttribute:NSFontAttributeName value:font range:range]; } return attributedStr;}

上述二种API综同盟用图如下

新澳门葡京赌场 1

1、伊始化方法

- (instancetype)initWithString:(NSString *)str;- (instancetype)initWithString:(NSString *)str attributes:(nullable NSDictionary<NSString *, id> *)attrs;- (instancetype)initWithAttributedString:(NSAttributedString *)attrStr;
  • 先是种选择字符串开端化开首化富文本
  • 其次种采纳字符串及性能辞典(就是安排富文本的连锁属性)初叶化富文本
  • 其二种正是用任何富文本最早化富文本

2、常用操作API

  • 为某一限量内文字增多有个别属性
- addAttribute:(NSString *)name value:value range:range;

示例:

新澳门葡京赌场 2

  • 为某一限量内文字增添多个属性(八个API效果与格式相通)
- addAttributes:(NSDictionary<NSString *, id> *)attrs range:range;- setAttributes:(nullable NSDictionary<NSString *, id> *)attrs range:range;

示例:

新澳门葡京赌场 3

  • 移除某范围内的某部属性(可与增多属性API对照,不在示例)
- removeAttribute:(NSString *)name range:range;
  • 其余一些API(见名知意,可与NSString对照不在赘述)
- replaceCharactersInRange:range withAttributedString:(NSAttributedString *)attrString;- insertAttributedString:(NSAttributedString *)attrString atIndex:(NSUInteger)loc;- appendAttributedString:(NSAttributedString *)attrString;- deleteCharactersInRange:range;- setAttributedString:(NSAttributedString *)attrString;

因此API大家得以知晓,对于富文本来说加多单个属性和加多属性词典称为其主旨措施,就是一个key对应一个Value,只要能精晓各类品质所对应效果就可以随便组合,搞出切合各个必要的封装API。

  • NSFontAttributeName :字体字号value值:UIFont类型
  • NSParagraphStyleAttributeName : 段落样式value值:NSParagraphStyle类型
    • lineSpacing 行间隔(具体用法可查看下边包车型大巴设置行间距API卡塔尔
    • paragraphSpacing 段落间隔
    • alignment 对齐方式
    • firstLineHeadIndent 钦赐段落伊始的缩进像素
    • headIndent 调解总体文字的缩进像素
  • NSForegroundColorAttributeName 字体颜色value值:UIColor类型
  • NSBackgroundColorAttributeName 背景颜色value值:UIColor类型
  • NSObliquenessAttributeName 字体粗偏斜value值:NSNumber类型
  • NSExpansionAttributeName 字体加粗value值:NSNumber类型 0正是不改变1扩大一倍
  • NSKernAttributeName 字间距value值:CGFloat类型
  • NSUnderlineStyleAttributeName 下划线value值:1或0
  • NSUnderlineColorAttributeName 下划线颜色value值:UIColor类型
  • NSStrikethroughStyleAttributeName 删除线value值:1或0
  • NSStrikethroughColorAttributeName 删除线颜色value值:UIColor类型
  • NSStrokeColorAttributeName 字体颜色value值:UIColor类型
  • NSStrokeWidthAttributeName 字体描边value值:CGFloat
  • NSLigatureAttributeName 连笔字value值:1或0
  • NSShadowAttributeName 阴影value值:NSShawdow类型
    • shadowOffset 影子与字符串的偏移量
    • shadowBlurRadius 影子的歪曲程度
    • shadowColor 影子的水彩
  • NSTextEffectAttributeName 设置文本特殊效果,这段时间唯有图版印制效果可用value值:NSString类型
  • NSAttachmentAttributeName 设置文本附属类小构件value值:NSTextAttachment类型(没切磋过,可机关百度切磋)
  • NSLinkAttributeName 链接value值:NSURL (preferred) or NSString类型
  • NSBaselineOffsetAttributeName 基准线偏移value值:NSNumber类型
  • NSWritingDirectionAttributeName 文字方向 分别表示差异的文字现身趋势value值:@[@]
  • NSVerticalGlyphFormAttributeName 水平依然竖直文本 在iOS没卵用,不协助竖版value值:1竖直 0水平

德姆o在那,点击可跳转

  • API路线地址如下:
/YiDing/Class/Helpers/LSCoreToolCenter

截图如下:

新澳门葡京赌场 4

  • 采取示例路线如下:
/YiDing/Class/Sections/LSSection/NSMutableAttributedString

截图如下

新澳门葡京赌场 5

7.18晚更新:有童鞋想要能够将抱有同一的子字符串都得以张开操作,所以增多了一个获取地点数组的艺术并封装在内,功效图已经更新,感兴趣的能够去德姆o查看。

本文由澳门新莆京娱乐官网发布于编程,转载请注明出处:富文本常用封装新澳门葡京赌场

关键词: