關於 NSMutableAttributedString 的詳解 比如 字型描邊 字型陰影
阿新 • • 發佈:2019-01-03
-(void)test { UITextView *textView; NSMutableAttributedString * attString = [[NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@"請輸入內容"]]; //設定attString 有2種方法 //1.直接add屬性 [attString addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:17] range:NSMakeRange(0, attString.length)];//字型大小 textView.attributedText = attString; //2.把所有屬性加到dic再匯入dic NSDictionary *attributeDict = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize:17], NSFontAttributeName, [_manageCenter.themeProxy DLColor:COLOR_9], NSForegroundColorAttributeName, nil]; NSMutableAttributedString * attString2 = [[NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@"請輸入內容"] attributes:attributeDict]; textView.attributedText = attString2; //NSMutableAttributedString的屬性有那些 /* NSString *const NSFontAttributeName;(字型) 該屬性所對應的值是一個 UIFont 物件。預設為12-point Helvetica(Neue)。 NSString *const NSParagraphStyleAttributeName;(段落) 該屬性所對應的值是一個 NSParagraphStyle 物件。該屬性在一段文字上應用多個屬性。如果不指定該屬性,則預設為 NSParagraphStyle 的defaultParagraphStyle 方法返回的預設段落屬性。 //NSParagraphStyle 的屬性下面有寫 NSString *const NSForegroundColorAttributeName;(字型顏色) 該屬性所對應的值是一個 UIColor 物件。預設為黑色。 NSString *const NSBackgroundColorAttributeName;(字型背景色) 該屬性所對應的值是一個 UIColor 物件。預設無背景色。 NSString *const NSLigatureAttributeName;(連字元) 該屬性所對應的值是一個 NSNumber 物件(整數)。連體字元是指某些連在一起的字元,它們採用單個的圖元符號。0 表示沒有連體字元。1 表示使用預設的連體字元。2表示使用所有連體符號。預設值為 1(注意,iOS 不支援值為 2)。 NSString *const NSKernAttributeName;(字間距) 該屬性所對應的值是一個 NSNumber 物件(整數)。字母緊排指定了用於調整字距的畫素點數。字母緊排的效果依賴於字型。值為 0 表示不使用字母緊排。預設值為0 NSString *const NSStrikethroughStyleAttributeName;(刪除線) 該屬性所對應的值是一個 NSNumber 物件(整數)。該值指定是否在文字上加上刪除線,該值參考“Underline Style Attributes”。預設值是NSUnderlineStyleNone。 NSString *const NSUnderlineStyleAttributeName;(下劃線) 該屬性所對應的值是一個 NSNumber 物件(整數)。該值指定是否在文字上加上下劃線,該值參考“Underline Style Attributes”。預設值是NSUnderlineStyleNone。 NSString *const NSStrokeColorAttributeName;(邊線顏色) 該屬性所對應的值是一個 UIColor 物件。如果該屬性不指定(預設),則等同於 NSForegroundColorAttributeName。否則,指定為刪除線或下劃線顏色。 NSStrokeColorAttributeName設定文字描邊顏色,需要和NSStrokeWidthAttributeName設定描邊寬度,這樣就能使文字空心. NSString *const NSStrokeWidthAttributeName;(邊線寬度) 該屬性所對應的值是一個 NSNumber 物件(小數)。該值改變描邊寬度(相對於字型size 的百分比)。預設為 0,即不改變。正數只改變描邊寬度。負數同時改變文字的描邊和填充寬度。例如,對於常見的空心字,這個值通常為3.0。 注意:正數是 是空心 負數是描邊 區域從 -3 到 3; NSString *const NSShadowAttributeName;(陰影)(橫豎排版) 該屬性所對應的值是一個 NSShadow 物件。預設為 nil。 下面有例子 NSString *const NSVerticalGlyphFormAttributeName; 常量 該屬性所對應的值是一個 NSNumber 物件(整數)。0 表示橫排文字。1 表示豎排文字。在 iOS 中,總是使用橫排文字,0 以外的值都未定義 NSString *const NSObliquenessAttributeName 該屬性所對應的值是一個 NSNumber 物件(整數) 設定字型傾斜。Skew 斜 NSString *const NSExpansionAttributeName 該屬性所對應的值是一個 NSNumber 物件(整數) 設定文字扁平化 */ //關於NSParagraphStyle屬性 NSMutableParagraphStyle * paragraph = [[NSMutableParagraphStyle alloc]init]; [paragraph setAlignment:NSTextAlignmentCenter];//設定對齊方式 [paragraph setLineSpacing:6];//設定行間距 [paragraph setBaseWritingDirection:NSWritingDirectionLeftToRight];//設定書寫方向 [attString2 addAttribute:NSParagraphStyleAttributeName value:paragraph range:NSMakeRange(0, attString2.length)]; //// alignment //對齊方式 //// firstLineHeadIndent //首行縮排 //// headIndent //縮排 //// tailIndent //尾部縮排 //// lineBreakMode //斷行方式 //// maximumLineHeight //最大行高 //// minimumLineHeight //最低行高 //// lineSpacing //行距 //// paragraphSpacing //段距 //// paragraphSpacingBefore //段首空間 //// baseWritingDirection //句子方向 //// lineHeightMultiple //可變行高,乘因數。 //// hyphenationFactor //連字元屬性 //關於NSShadow屬性 NSShadow *shadow = [[NSShadow alloc] init]; shadow.shadowBlurRadius = 1; //模糊度(寬度?) shadow.shadowColor = [UIColor blackColor]; shadow.shadowOffset = CGSizeMake(1, 0);//正數是往右邊跟下邊延伸 [attString2 addAttribute:NSShadowAttributeName value:shadow range:NSMakeRange(0, attString2.length)]; }