改變某些文字的顏色 并單獨設置其字體
/**
* 改變某些文字的顏色 并單獨設置其字體
*
* @param font 設置的字體
* @param color 顏色
* @param totalString 總的字符串
* @param subArray 想要變色的字符數組
*
* @return
*/
+ (NSMutableAttributedString *)ls_changeFontAndColor:(UIFont *)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;
}
同時更改行間距和字間距
/**
* 同時更改行間距和字間距
*
* @param totalString 需要改變的字符串
* @param lineSpace 行間距
* @param textSpace 字間距
*
* @return
*/
+ (NSMutableAttributedString *)ls_changeLineAndTextSpaceWithTotalString:(NSString *)totalString LineSpace:(CGFloat)lineSpace textSpace:(CGFloat)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:(id)kCTKernAttributeName value:(__bridge id)num range:NSMakeRange(0,[attributedStr length])];
CFRelease(num);
return attributedStr;
}
單純改變段落的行間距
/**
* 單純改變段落的行間距
*
* @param totalString 需要更改的字符串
* @param lineSpace 行間距
*
* @return
*/
+ (NSMutableAttributedString *)ls_changeLineSpaceWithTotalString:(NSString *)totalString LineSpace:(CGFloat)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;
}
單純改變句子的字間距(需要 <CoreText/CoreText.h>
/**
* 單純改變句子的字間距(需要 <CoreText/CoreText.h>)
*
* @param totalString 需要更改的字符串
* @param space 字間距
*
* @return
*/
+ (NSMutableAttributedString *)ls_changeSpaceWithTotalString:(NSString *)totalString Space:(CGFloat)space {
NSMutableAttributedString *attributedStr = [[NSMutableAttributedString alloc] initWithString:totalString];
long number = space;
CFNumberRef num = CFNumberCreate(kCFAllocatorDefault,kCFNumberSInt8Type,&number);
[attributedStr addAttribute:(id)kCTKernAttributeName value:(__bridge id)num range:NSMakeRange(0,[attributedStr length])];
CFRelease(num);
return attributedStr;
}
單純改變一句話中的某些字的顏色(一種顏色)
/**
* 單純改變一句話中的某些字的顏色(一種顏色)
*
* @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;
}
相關各屬性對應值:
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值:@[@(1),@(2)]