1. 程式人生 > >關於 NSMutableAttributedString 的詳解 比如 字型描邊 字型陰影

關於 NSMutableAttributedString 的詳解 比如 字型描邊 字型陰影

-(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)];
    
    
    
 
    
    
    

}