使用例子
NSString *text= @"說明:\n1、個人業績為實時統計;\n2、獎勵顯示為T+1(當日辦理隔日顯示);\n3、無邀請碼的訂單不在個人業績統計範疇;\n4、如對獎金有疑問,請向上級反饋處理。";
NSMutableAttributedString *att=[[NSMutableAttributedString alloc]initWithString:text];
//設定字號14、顏色、行間距
att.ps_font([UIFont systemFontOfSize:14.0]).ps_color(k_Color_9B9B9B).ps_lineSpacing(2);
//把全部“為”字變成紅色、字間距為10
[att ps_changeSubStrings:@[@"為"] makeCalculators:^(NSMutableAttributedString *make) {
make.ps_color([UIColor redColor]).ps_kern(10);
}];
//把全部“@"個人",@"績"變成綠色、字號19、設定筆畫寬度(中空效果)
[att ps_changeSubStrings:@[@"個人",@"績"] makeCalculators:^(NSMutableAttributedString *make) {
make.ps_color([UIColor greenColor]).ps_font([UIFont systemFontOfSize:19]).ps_strokeWidth(4);
}];
lab.attributedText=att;
複製程式碼
效果
![WX20170304-132522@2x.png](https://i.iter01.com/images/f4f6e8ebce47b010421046b9b036895d8b91584fa82e06f6629229e9b17cf53f.png)
直接上程式碼,NSMutableAttributedString屬性太多,程式碼有點長 NSMutableAttributedString+Chain.h
#import <Foundation/Foundation.h>
@interface NSMutableAttributedString (Chain)
/**
改變某些文字的顏色 並單獨設定其字型
@param subStrings 想要變色的字元陣列
@param block 裡面用make.各種想要的設定
*/
- (void)ps_changeSubStrings:(NSArray *)subStrings makeCalculators:(void (^)(NSMutableAttributedString * make))block;
/**
多個AttributedString連線
*/
- (void)ps_appendAttributedStrings:(NSArray *)attrStrings;
/**
多個AttributedString連線
*/
+ (NSMutableAttributedString *)ps_appendAttributedStrings:(NSArray *)attrStrings;
#pragma mark -基本設定
// NSFontAttributeName 設定字型屬性,預設值:字型:Helvetica(Neue) 字號:12
// NSForegroundColorAttributeNam 設定字型顏色,取值為 UIColor物件,預設值為黑色
// NSBackgroundColorAttributeName 設定字型所在區域背景顏色,取值為 UIColor物件,預設值為nil, 透明色
// NSLigatureAttributeName 設定連體屬性,取值為NSNumber 物件(整數),0 表示沒有連體字元,1 表示使用預設的連體字元
// NSKernAttributeName 設定字元間距,取值為 NSNumber 物件(整數),正值間距加寬,負值間距變窄
// NSStrikethroughStyleAttributeName 設定刪除線,取值為 NSNumber 物件(整數)
// NSStrikethroughColorAttributeName 設定刪除線顏色,取值為 UIColor 物件,預設值為黑色
// NSUnderlineStyleAttributeName 設定下劃線,取值為 NSNumber 物件(整數),列舉常量 NSUnderlineStyle中的值,與刪除線類似
// NSUnderlineColorAttributeName 設定下劃線顏色,取值為 UIColor 物件,預設值為黑色
// NSStrokeWidthAttributeName 設定筆畫寬度,取值為 NSNumber 物件(整數),負值填充效果,正值中空效果
// NSStrokeColorAttributeName 填充部分顏色,不是字型顏色,取值為 UIColor 物件
// NSShadowAttributeName 設定陰影屬性,取值為 NSShadow 物件
// NSTextEffectAttributeName 設定文字特殊效果,取值為 NSString 物件,目前只有圖版印刷效果可用:
// NSBaselineOffsetAttributeName 設定基線偏移值,取值為 NSNumber (float),正值上偏,負值下偏
// NSObliquenessAttributeName 設定字形傾斜度,取值為 NSNumber (float),正值右傾,負值左傾
// NSExpansionAttributeName 設定文字橫向拉伸屬性,取值為 NSNumber (float),正值橫向拉伸文字,負值橫向壓縮文字
// NSWritingDirectionAttributeName 設定文字書寫方向,從左向右書寫或者從右向左書寫
// NSVerticalGlyphFormAttributeName 設定文字排版方向,取值為 NSNumber 物件(整數),0 表示橫排文字,1 表示豎排文字
// NSLinkAttributeName 設定連結屬性,點選後呼叫開啟指定URL地址
// NSAttachmentAttributeName 設定文字附件,取值為NSTextAttachment物件,常用於文字圖片混排
/**
.color(文字顏色)
*/
- (NSMutableAttributedString *(^)(UIColor *))ps_color;
/**
.ps_bgColor(背景顏色)
*/
- (NSMutableAttributedString *(^)(UIColor *))ps_bgColor;
/**
.font(字型)
*/
- (NSMutableAttributedString *(^)(UIFont *))ps_font;
/**
.ps_offset(偏移量) 正值上偏,負值下偏
*/
- (NSMutableAttributedString *(^)(CGFloat))ps_baselineOffset;
/**
.ps_ligature(連體符)設定連體屬性,0 表示沒有連體字元,1 表示使用預設的連體字元
*/
- (NSMutableAttributedString *(^)(NSInteger))ps_ligature;
/**
.ps_kern(字間距),取值為 NSNumber 物件(整數),正值間距加寬,負值間距變窄
*/
- (NSMutableAttributedString *(^)(NSInteger))ps_kern;
/**
.ps_strikethrough(刪除線),取值為 NSNumber 物件(整數)
*/
- (NSMutableAttributedString *(^)(NSUnderlineStyle))ps_strikethrough;
/**
NSStrikethroughColorAttributeName 設定刪除線顏色,取值為 UIColor 物件,預設值為黑色
*/
- (NSMutableAttributedString *(^)(UIColor *))ps_strikethroughColor;
/**
設定下劃線,取值為 NSNumber 物件(整數),列舉常量 NSUnderlineStyle中的值,與刪除線類似
*/
- (NSMutableAttributedString *(^)(NSUnderlineStyle))ps_underlineStyle;
/**
NSUnderlineColorAttributeName 設定下劃線顏色,取值為 UIColor 物件,預設值為黑色
*/
- (NSMutableAttributedString *(^)(UIColor *))ps_underlineColor;
/**
NSStrokeWidthAttributeName 設定筆畫寬度,取值為 NSNumber 物件(整數),負值填充效果,正值中空效果
*/
- (NSMutableAttributedString *(^)(NSInteger))ps_strokeWidth;
/**
NSStrokeColorAttributeName 填充部分顏色,不是字型顏色,取值為 UIColor 物件
*/
- (NSMutableAttributedString *(^)(UIColor *))ps_strokeColor;
/**
NSShadowAttributeName 設定陰影屬性,取值為 NSShadow 物件
*/
- (NSMutableAttributedString *(^)(NSShadow *))ps_shadow;
/**
NSTextEffectAttributeName 設定文字特殊效果,取值為 NSString 物件,目前只有圖版印刷效果可用:
*/
- (NSMutableAttributedString *(^)(NSString *))ps_textEffect;
/**
NSObliquenessAttributeName設定字形傾斜度,取值為 NSNumber (float),正值右傾,負值左傾
*/
- (NSMutableAttributedString *(^)(CGFloat))ps_obliqueness;
/**
NSExpansionAttributeName 設定文字橫向拉伸屬性,取值為 NSNumber (float),正值橫向拉伸文字,負值橫向壓縮文字
*/
- (NSMutableAttributedString *(^)(CGFloat))ps_expansion;
/**
NSWritingDirectionAttributeName 設定文字書寫方向NSWritingDirection
*/
- (NSMutableAttributedString *(^)(NSWritingDirection))ps_writingDirection;
/**
NSVerticalGlyphFormAttributeName 設定文字排版方向,取值為 NSNumber 物件(整數),0 表示橫排文字,1 表示豎排文字
*/
- (NSMutableAttributedString *(^)(NSInteger))ps_verticalGlyph;
/**
NSLinkAttributeName 設定連結屬性,點選後呼叫開啟指定URL地址
*/
- (NSMutableAttributedString *(^)(NSURL *))ps_linkAttribute;
#pragma mark -NSParagraphStyleAttributeName 設定文字段落排版格式
//alignment //對齊方式
//lineSpacing //行距
//paragraphSpacing //段距
//firstLineHeadIndent //首行縮排
//headIndent //縮排
//tailIndent //尾部縮排
//lineBreakMode //斷行方式
//maximumLineHeight //最大行高
//minimumLineHeight //最低行高
//paragraphSpacingBefore //段首空間
//baseWritingDirection //句子方向
//lineHeightMultiple //可變行高,乘因數。
//hyphenationFactor //連字元屬性
/**
.alignment(對齊)
*/
- (NSMutableAttributedString *(^)(NSTextAlignment))ps_alignment;
/**
.lineSpacing(調整行間距)
*/
- (NSMutableAttributedString *(^)(CGFloat))ps_lineSpacing;
/**
.paragraphSpacing(調整段間距)
*/
- (NSMutableAttributedString *(^)(CGFloat))ps_paragraphSpacing;
/**
首行縮排
*/
- (NSMutableAttributedString *(^)(CGFloat ))ps_firstLineHeadIndent;
/**
縮排
*/
- (NSMutableAttributedString *(^)(CGFloat ))ps_headIndent;
/**
尾部縮排
*/
- (NSMutableAttributedString *(^)(CGFloat ))ps_tailIndent;
/**
斷行方式
*/
- (NSMutableAttributedString *(^)(NSLineBreakMode ))ps_lineBreakMode;
/**
最大行高
*/
- (NSMutableAttributedString *(^)(CGFloat ))ps_maximumLineHeight;
/**
最低行高
*/
- (NSMutableAttributedString *(^)(CGFloat ))ps_minimumLineHeight;
/**
句子方向
*/
- (NSMutableAttributedString *(^)(NSWritingDirection ))ps_baseWritingDirection;
/**
可變行高,乘因數。
*/
- (NSMutableAttributedString *(^)(CGFloat ))ps_lineHeightMultiple;
/**
連字元屬性。
*/
- (NSMutableAttributedString *(^)(CGFloat ))ps_hyphenationFactor;
@end
複製程式碼
NSMutableAttributedString+Chain.m
#import "NSMutableAttributedString+Chain.h"
#import <objc/runtime.h>
@interface NSMutableAttributedString ()
@property(nonatomic, assign) NSRange changeRange;
@end
@implementation NSMutableAttributedString (Chain)
/**
改變某些文字的顏色 並單獨設定其字型
@param subStrings 想要變色的字元陣列
@param block 裡面用make.各種想要的設定
*/
- (void)ps_changeSubStrings:(NSArray *)subStrings makeCalculators:(void (^)(NSMutableAttributedString * make))block{
for (NSString *rangeStr in subStrings) {
NSMutableArray *array = [self ps_getRangeWithTotalString:self.string SubString:rangeStr];
for (NSNumber *rangeNum in array) {
//設定修改range
self.changeRange = [rangeNum rangeValue];
//block 鏈式呼叫
block(self);
}
}
//設定為空
self.changeRange=NSMakeRange(0, 0);
}
/**
多個AttributedString連線
*/
- (void)ps_appendAttributedStrings:(NSArray *)attrStrings{
for (NSAttributedString *att in attrStrings) {
[self appendAttributedString:att];
}
}
/**
多個AttributedString連線
*/
+ (NSMutableAttributedString *)ps_appendAttributedStrings:(NSArray *)attrStrings{
NSMutableAttributedString *att=[NSMutableAttributedString new];
[att ps_appendAttributedStrings:attrStrings];
return att;
}
#pragma mark - Private Methods
/**
* 獲取某個字串中子字串的位置陣列
* @param totalString 總的字串
* @param subString 子字串
* @return 位置陣列
*/
- (NSMutableArray *)ps_getRangeWithTotalString:(NSString *)totalString SubString:(NSString *)subString {
if (subString == nil && [subString isEqualToString:@""]) {
return nil;
}
NSMutableArray *arrayRanges = [NSMutableArray array];
//方法一、NSRegularExpression
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:subString options:0 error:nil];
NSArray *matches = [regex matchesInString:totalString options:0 range:NSMakeRange(0, totalString.length)];
for(NSTextCheckingResult *result in [matches objectEnumerator]){
NSRange matchRange = [result range];
[arrayRanges addObject:[NSNumber valueWithRange:matchRange]];
}
return arrayRanges;
//方法二、[NSString componentsSeparatedByString:]分解得到陣列,在用陣列搗鼓出ranges
/*
NSArray *array=[totalString componentsSeparatedByString:subString];
NSInteger d=0;
for (int i=0; i<array.count-1; i++) {
NSString *string=array[i];
NSRange range=NSMakeRange(d+string.length, subString.length);
d=NSMaxRange(range);
[arrayRanges addObject:[NSNumber valueWithRange:range]];
}
return arrayRanges;
*/
//方法三、rangeOfString 查詢
/*
NSRange searchRange = NSMakeRange(0, [totalString length]);
NSRange range=NSMakeRange(0, 0);
while ((range = [totalString rangeOfString:subString options:0 range:searchRange]).location != NSNotFound) {
[arrayRanges addObject:[NSNumber valueWithRange:range]];
searchRange = NSMakeRange(NSMaxRange(range), searchRange.length - NSMaxRange(range));
}
return arrayRanges;
*/
}
- (void)ps_addAttribute:(NSString *)name value:(id)value{
NSRange range=[self range];
if (range.length>0) {
[self addAttribute:name value:value range:range];
}else{
NSLog(@"AttributedString的string為空,注意!!!");
}
}
//獲取有效的range
- (NSRange)range{
NSRange range=NSMakeRange(0, 0);
NSString *string=self.string;
if (string&&string.length>0) {
if (self.changeRange.length>0&&NSMaxRange(self.changeRange)<=string.length) {
//如果是需要修改的字元,就使用changeRange
range=self.changeRange;
}else{
//設定全部字串
range=NSMakeRange(0, string.length);
}
}
return range;
}
- (NSMutableParagraphStyle *)ps_paragraphStyle{
NSRange range=[self range];
if (range.length>0) {
NSDictionary *dic = [self attributesAtIndex:0 effectiveRange:&range];
NSMutableParagraphStyle *paragraphStyle=dic[@"NSParagraphStyle"];
//如果字串裡面沒有paragraphStyle,new一個新的
if (!paragraphStyle) {
paragraphStyle=[[NSMutableParagraphStyle alloc]init];
}
return paragraphStyle;
}else{
NSLog(@"AttributedString的string為空,注意!!!");
return nil;
}
}
#pragma mark -ChangeRange的get、set
-(void)setChangeRange:(NSRange)changeRange{
objc_setAssociatedObject(self, @selector(changeRange), [NSNumber valueWithRange:changeRange], OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
-(NSRange)changeRange{
NSNumber *rangeNum = objc_getAssociatedObject(self, @selector(changeRange));
NSRange range = [rangeNum rangeValue];
return range;
}
#pragma mark - 設定各種配置引數
//顏色
- (NSMutableAttributedString *(^)(UIColor *))ps_color{
return ^NSMutableAttributedString *(UIColor *obj) {
[self ps_addAttribute:NSForegroundColorAttributeName value:obj];
return self;
};
}
/**
.ps_bgColor(背景顏色)
*/
- (NSMutableAttributedString *(^)(UIColor *))ps_bgColor{
return ^NSMutableAttributedString *(UIColor *obj) {
[self ps_addAttribute:NSBackgroundColorAttributeName value:obj];
return self;
};
}
//字型
- (NSMutableAttributedString *(^)(UIFont *))ps_font{
return ^NSMutableAttributedString *(UIFont *obj) {
[self ps_addAttribute:NSFontAttributeName value:obj];
return self;
};
}
//偏移量
- (NSMutableAttributedString *(^)(CGFloat ))ps_baselineOffset{
return ^NSMutableAttributedString *(CGFloat obj) {
[self ps_addAttribute:NSBaselineOffsetAttributeName value:@(obj)];
return self;
};
}
//.ps_ligature(連體符)設定連體屬性,0 表示沒有連體字元,1 表示使用預設的連體字元
- (NSMutableAttributedString *(^)(NSInteger))ps_ligature{
return ^NSMutableAttributedString *(NSInteger obj) {
[self ps_addAttribute:NSLigatureAttributeName value:@(obj)];
return self;
};
}
//.ps_kern(字間距),取值為 NSNumber 物件(整數),正值間距加寬,負值間距變窄
- (NSMutableAttributedString *(^)(NSInteger))ps_kern{
return ^NSMutableAttributedString *(NSInteger obj) {
[self ps_addAttribute:NSKernAttributeName value:@(obj)];
return self;
};
}
//.ps_strikethrough(刪除線),NSUnderlineStyle
- (NSMutableAttributedString *(^)(NSUnderlineStyle))ps_strikethrough{
return ^NSMutableAttributedString *(NSUnderlineStyle obj) {
[self ps_addAttribute:NSStrikethroughStyleAttributeName value:@(obj)];
return self;
};
}
//NSStrikethroughColorAttributeName 設定刪除線顏色,取值為 UIColor 物件,預設值為黑色
- (NSMutableAttributedString *(^)(UIColor *))ps_strikethroughColor{
return ^NSMutableAttributedString *(UIColor *obj) {
[self ps_addAttribute:NSStrikethroughStyleAttributeName value:obj];
return self;
};
}
//設定下劃線,取值為 NSNumber 物件(整數),列舉常量 NSUnderlineStyle中的值,與刪除線類似
- (NSMutableAttributedString *(^)(NSUnderlineStyle))ps_underlineStyle{
return ^NSMutableAttributedString *(NSUnderlineStyle obj) {
[self ps_addAttribute:NSUnderlineStyleAttributeName value:@(obj)];
return self;
};
}
//NSUnderlineColorAttributeName 設定下劃線顏色,取值為 UIColor 物件,預設值為黑色
- (NSMutableAttributedString *(^)(UIColor *))ps_underlineColor{
return ^NSMutableAttributedString *(UIColor *obj) {
[self ps_addAttribute:NSUnderlineColorAttributeName value:obj];
return self;
};
}
//NSStrokeWidthAttributeName 設定筆畫寬度,取值為 NSNumber 物件(整數),負值填充效果,正值中空效果
- (NSMutableAttributedString *(^)(NSInteger))ps_strokeWidth{
return ^NSMutableAttributedString *(NSInteger obj) {
[self ps_addAttribute:NSStrokeWidthAttributeName value:@(obj)];
return self;
};
}
//NSStrokeColorAttributeName 填充部分顏色,不是字型顏色,取值為 UIColor 物件
- (NSMutableAttributedString *(^)(UIColor *))ps_strokeColor{
return ^NSMutableAttributedString *(UIColor *obj) {
[self ps_addAttribute:NSStrokeColorAttributeName value:obj];
return self;
};
}
//NSShadowAttributeName 設定陰影屬性,取值為 NSShadow 物件
- (NSMutableAttributedString *(^)(NSShadow *))ps_shadow{
return ^NSMutableAttributedString *(NSShadow *obj) {
[self ps_addAttribute:NSShadowAttributeName value:obj];
return self;
};
}
//NSTextEffectAttributeName 設定文字特殊效果,取值為 NSString 物件,目前只有圖版印刷效果可用:
- (NSMutableAttributedString *(^)(NSString *))ps_textEffect{
return ^NSMutableAttributedString *(NSString *obj) {
[self ps_addAttribute:NSTextEffectAttributeName value:obj];
return self;
};
}
//NSObliquenessAttributeName設定字形傾斜度,取值為 NSNumber (float),正值右傾,負值左傾
- (NSMutableAttributedString *(^)(CGFloat))ps_obliqueness{
return ^NSMutableAttributedString *(CGFloat obj) {
[self ps_addAttribute:NSObliquenessAttributeName value:@(obj)];
return self;
};
}
//NSExpansionAttributeName 設定文字橫向拉伸屬性,取值為 NSNumber (float),正值橫向拉伸文字,負值橫向壓縮文字
- (NSMutableAttributedString *(^)(CGFloat))ps_expansion{
return ^NSMutableAttributedString *(CGFloat obj) {
[self ps_addAttribute:NSExpansionAttributeName value:@(obj)];
return self;
};
}
//NSWritingDirectionAttributeName 設定文字書寫方向NSWritingDirection
- (NSMutableAttributedString *(^)(NSWritingDirection))ps_writingDirection{
return ^NSMutableAttributedString *(NSWritingDirection obj) {
[self ps_addAttribute:NSWritingDirectionAttributeName value:@(obj)];
return self;
};
}
//NSVerticalGlyphFormAttributeName 設定文字排版方向,取值為 NSNumber 物件(整數),0 表示橫排文字,1 表示豎排文字
- (NSMutableAttributedString *(^)(NSInteger))ps_verticalGlyph{
return ^NSMutableAttributedString *(NSInteger obj) {
[self ps_addAttribute:NSVerticalGlyphFormAttributeName value:@(obj)];
return self;
};
}
//NSLinkAttributeName 設定連結屬性,點選後呼叫開啟指定URL地址
- (NSMutableAttributedString *(^)(NSURL *))ps_linkAttribute{
return ^NSMutableAttributedString *(NSURL *obj) {
[self ps_addAttribute:NSLinkAttributeName value:obj];
return self;
};
}
//NSAttachmentAttributeName 設定文字附件,取值為NSTextAttachment物件,常用於文字圖片混排
/*
NSTextAttachment *textAttachment01 = [[NSTextAttachment alloc] init];
textAttachment01.image = [UIImage imageNamed: @"10000.jpeg"]; //設定圖片源
textAttachment01.bounds = CGRectMake(0, 0, 30, 30); //設定圖片位置和大小
NSMutableAttributedString *attrStr01 = [[NSMutableAttributedString alloc] initWithString: originStr];
[attrStr01 addAttribute: NSFontAttributeName value: [UIFont systemFontOfSize: 25] range: NSMakeRange(0, originStr.length)];
NSAttributedString *attrStr11 = [NSAttributedString attributedStringWithAttachment: textAttachment01];
[attrStr01 insertAttributedString: attrStr11 atIndex: 2]; //NSTextAttachment佔用一個字元長度,插入後原字串長度增加1
_label01.attributedText = attrStr01;
*/
#pragma mark -NSParagraphStyleAttributeName 設定文字段落排版格式
//對齊
- (NSMutableAttributedString *(^)(NSTextAlignment))ps_alignment{
return ^NSMutableAttributedString *(NSTextAlignment obj) {
NSMutableParagraphStyle *style=[self ps_paragraphStyle];
style.alignment=obj;
[self ps_addAttribute:NSParagraphStyleAttributeName value:style];
return self;
};
}
//行間距
- (NSMutableAttributedString *(^)(CGFloat ))ps_lineSpacing{
return ^NSMutableAttributedString *(CGFloat obj) {
NSMutableParagraphStyle *style=[self ps_paragraphStyle];
style.lineSpacing=obj;
[self ps_addAttribute:NSParagraphStyleAttributeName value:style];
return self;
};
}
//段間距
- (NSMutableAttributedString *(^)(CGFloat ))ps_paragraphSpacing{
return ^NSMutableAttributedString *(CGFloat obj) {
NSMutableParagraphStyle *style=[self ps_paragraphStyle];
style.paragraphSpacing=obj;
[self ps_addAttribute:NSParagraphStyleAttributeName value:style];
return self;
};
}
//首行縮排
- (NSMutableAttributedString *(^)(CGFloat ))ps_firstLineHeadIndent{
return ^NSMutableAttributedString *(CGFloat obj) {
NSMutableParagraphStyle *style=[self ps_paragraphStyle];
style.firstLineHeadIndent=obj;
[self ps_addAttribute:NSParagraphStyleAttributeName value:style];
return self;
};
}
//縮排
- (NSMutableAttributedString *(^)(CGFloat ))ps_headIndent{
return ^NSMutableAttributedString *(CGFloat obj) {
NSMutableParagraphStyle *style=[self ps_paragraphStyle];
style.headIndent=obj;
[self ps_addAttribute:NSParagraphStyleAttributeName value:style];
return self;
};
}
//尾部縮排
- (NSMutableAttributedString *(^)(CGFloat ))ps_tailIndent{
return ^NSMutableAttributedString *(CGFloat obj) {
NSMutableParagraphStyle *style=[self ps_paragraphStyle];
style.tailIndent=obj;
[self ps_addAttribute:NSParagraphStyleAttributeName value:style];
return self;
};
}
//斷行方式
- (NSMutableAttributedString *(^)(NSLineBreakMode ))ps_lineBreakMode{
return ^NSMutableAttributedString *(NSLineBreakMode obj) {
NSMutableParagraphStyle *style=[self ps_paragraphStyle];
style.lineBreakMode=obj;
[self ps_addAttribute:NSParagraphStyleAttributeName value:style];
return self;
};
}
//最大行高
- (NSMutableAttributedString *(^)(CGFloat ))ps_maximumLineHeight{
return ^NSMutableAttributedString *(CGFloat obj) {
NSMutableParagraphStyle *style=[self ps_paragraphStyle];
style.maximumLineHeight=obj;
[self ps_addAttribute:NSParagraphStyleAttributeName value:style];
return self;
};
}
//最低行高
- (NSMutableAttributedString *(^)(CGFloat ))ps_minimumLineHeight{
return ^NSMutableAttributedString *(CGFloat obj) {
NSMutableParagraphStyle *style=[self ps_paragraphStyle];
style.minimumLineHeight=obj;
[self ps_addAttribute:NSParagraphStyleAttributeName value:style];
return self;
};
}
//句子方向
- (NSMutableAttributedString *(^)(NSWritingDirection ))ps_baseWritingDirection{
return ^NSMutableAttributedString *(NSWritingDirection obj) {
NSMutableParagraphStyle *style=[self ps_paragraphStyle];
style.baseWritingDirection=obj;
[self ps_addAttribute:NSParagraphStyleAttributeName value:style];
return self;
};
}
//可變行高,乘因數
- (NSMutableAttributedString *(^)(CGFloat ))ps_lineHeightMultiple{
return ^NSMutableAttributedString *(CGFloat obj) {
NSMutableParagraphStyle *style=[self ps_paragraphStyle];
style.lineHeightMultiple=obj;
[self ps_addAttribute:NSParagraphStyleAttributeName value:style];
return self;
};
}
//連字元屬性
- (NSMutableAttributedString *(^)(CGFloat ))ps_hyphenationFactor{
return ^NSMutableAttributedString *(CGFloat obj) {
NSMutableParagraphStyle *style=[self ps_paragraphStyle];
style.hyphenationFactor=obj;
[self ps_addAttribute:NSParagraphStyleAttributeName value:style];
return self;
};
}
@end
複製程式碼