1 Foundation 中有属性字符串
2 UIKit 中对属性字符串定义一些常用的类型
NSAttributedString 一般创建
一般创建 通过 NSMutableAttributedString 添加各种属性,虽然代码比较多,但是跟丰富一点。
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:@"asdfghjkl"];
[attributedString addAttribute:NSUnderlineStyleAttributeName//下划线
value:[NSNumber numberWithInt:NSUnderlineStyleThick]//类型。也可以数值 表示粗细
range:NSMakeRange(8, 8)];
[attributedString addAttribute:NSUnderlineColorAttributeName//下划线。颜色
value:[UIColor redColor]
range:NSMakeRange(8, 8)];
// 类似的 AttributeteName 还有很多,对同一个NSMutableAttributedString 可以添加多个属性,具体下面解释。
NSFontAttributeName 字体 UIFont
NSForegroundColorAttributeName 字体颜色 UIColor
NSBackgroundColorAttributeName 字背景颜色 UIColor
NSUnderlineStyleAttributeName 下划线粗细,类型 NSNumber
NSUnderlineColorAttributeName 下划线颜色 UIColor
NSStrikethroughStyleAttributeName 删除线粗细,类型 NSNumber
NSStrikethroughColorAttributeName 删除线颜色 UIColor
NSBaselineOffsetAttributeName 上下偏移 NSNumber
NSObliquenessAttributeName 倾斜 NSNumber
NSExpansionAttributeName 横向拉伸压缩 NSNumber
NSStrokeWidthAttributeName 描边宽度 NSNumber
NSStrokeColorAttributeName 描边颜色 UIColor
NSShadowAttributeName 字符阴影 NSShadow
NSLinkAttributeName 网址链接 NSURL
NSParagraphStyleAttributeName 段落 NSParagraphStyle
以上还不够用的话,研究更多下面的把。
未知
NSLigatureAttributeName
NSKernAttributeName
NSTextEffectAttributeName NSTextEffectLetterpressStyle
NSAttachmentAttributeName
NSWritingDirectionAttributeName
NSVerticalGlyphFormAttributeName
还有更多 文件的富文本格式 0.0 NSAttributedStringDocumentFormats
NSAttributedString 快速创建
与一般创建类似,只是把各种属性,以key - value 形式揉成字典,NSAttributedString创建成字符串,
UILabel *testLabel = [UILabel new];
NSDictionary *paramas = @{NSUnderlineStyleAttributeName:@(2),
NSUnderlineColorAttributeName:[UIColor redColor]
};
NSAttributedString *att = [[NSAttributedString alloc] initWithString:@"testaaa" attributes:paramas];
Foundation 中的 一些属性字符串操作
NSAttributedString 部分
// 截取
NSAttributedString *att2 = [att1 attributedSubstringFromRange:NSMakeRange(0, 2)];
// 比较
[att1 isEqualToAttributedString att2];
// 遍历 某种属性的字符串 位置
[attributedString enumerateAttribute:NSFontAttributeName inRange:NSMakeRange(0, 3) options:NSAttributedStringEnumerationLongestEffectiveRangeNotRequired usingBlock:^(id _Nullable value, NSRange range, BOOL * _Nonnull stop) {
NSLog(@"- - - - - -%zi",range.location);
}];
NSMutableAttributedString 部分
// 有更多的类似字符串的 替换,插入,删除的操作,不写了
UIKit 拓展操作
NSAttributedStringDocumentFormats 水好深。。
1