iOS-NSAttributedString

1、NSAttributeString簡介學習

  NSAttributedString叫作富文本,是一種帶有屬性的字符串,經過它能夠輕鬆的在一個字符串中表現出多種字體、字號、字體大小等各不相同的風格,還能夠對段落進行格式化。字體

2、字符屬性spa

  1.NSString *const NSFontAttributeName(字體):code

  該屬性所對應的值是一個 UIFont 對象。該屬性用於改變一段文本的字體。若是不指定該屬性,則默認爲12-point Helvetica(Neue)。orm

  2.NSString *const NSParagraphStyleAttributeName(段落)對象

  該屬性所對應的值是一個 NSParagraphStyle 對象。該屬性在一段文本上應用多個屬性。若是不指定該屬性,則默認爲 NSParagraphStyle 的 defaultParagraphStyle 方法返回的默認段落屬性。想要了解NSParagraphStyle能夠自行百度學習,在這裏不詳細描述。注意:lable的numberOfLines屬性必須設置爲0,段落樣式才能生效。blog

 

  3.NSString *const NSForegroundColorAttributeName(字體顏色)字符串

  該屬性所對應的值是一個 UIColor 對象。該屬性用於指定一段文本的字體顏色。若是不指定該屬性,則默認爲黑色。string

  4.NSString *const NSBackgroundColorAttributeName(字體背景色):it

  屬性所對應的值是一個 UIColor 對象。該屬性用於指定一段文本的背景顏色。若是不指定該屬性,則默認無背景色。

  5.NSString *const NSLigatureAttributeName(連字符):

  該屬性所對應的值是一個 NSNumber 對象(整數)。連體字符是指某些連在一塊兒的字符,它們採用單個的圖元符號。0 表示沒有連體字符。1 表示使用默認的連體字符。2表示使用全部連體符號。默認值爲 1(注意,iOS 不支持值爲 2)。

  6.NSString *const NSKernAttributeName(字間距):

  該屬性所對應的值是一個 NSNumber 對象(整數)。連體字符是指某些連在一塊兒的字符,它們採用單個的圖元符號。0 表示沒有連體字符。1 表示使用默認的連體字符。2表示使用全部連體符號。默認值爲 1(注意,iOS 不支持值爲 2)。

  7.NSString *const NSStrikethroughStyleAttributeName(刪除線):

  該屬性所對應的值是一個 NSNumber 對象(整數)。該值指定是否在文字上加上刪除線,該值參考「Underline Style Attributes」。默認值是NSUnderlineStyleNone。

  8.NSString *const NSUnderlineStyleAttributeName(下劃線):

  該屬性所對應的值是一個 NSNumber 對象(整數)。該值指定是否在文字上加上下劃線,該值參考「Underline Style Attributes」。默認值是NSUnderlineStyleNone。

  9.NSString *const NSStrokeColorAttributeName(邊線顏色):

  該屬性所對應的值是一個 UIColor 對象。若是該屬性不指定(默認),則等同於 NSForegroundColorAttributeName。不然,指定爲刪除線或下劃線顏色。更多細節見「Drawing attributedstrings that are both filled and stroked」。

  10.NSString *const NSStrokeWidthAttributeName(邊線寬度):

  該屬性所對應的值是一個 NSNumber 對象(小數)。該值改變描邊寬度(相對於字體size 的百分比)。默認爲 0,即不改變。正數只改變描邊寬度。負數同時改變文字的描邊和填充寬度。例如,對於常見的空心字,這個值一般爲3.0。

  11.NSString *const NSShadowAttributeName(陰影):

  該屬性所對應的值是一個 NSShadow 對象。默認爲 nil。

  12.NSString *const NSVerticalGlyphFormAttributeName(橫豎排版):

  該屬性所對應的值是一個 NSNumber 對象(整數)。0 表示橫排文本。1 表示豎排文本。在 iOS 中,老是使用橫排文本,0 之外的值都未定義。

3、代碼示例

  在這裏給你們舉了幾個簡單的例子,有興趣的能夠嘗試其他屬性的效果。

// 示例Lable
    UILabel *exLabel = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 200, 40)];
    exLabel.textAlignment = NSTextAlignmentCenter;
    [self.view addSubview:exLabel];
    
    NSString *exString = @"查看人數:150人";
    
    // 富文本對象
    NSMutableAttributedString *exAttributedString = [[NSMutableAttributedString alloc] initWithString:exString];
    
    // 富文本樣式
    // 經過addAttribute方法設置樣式
    // 參數分別是字符屬性,值,改變範圍
    // 字體顏色
    [exAttributedString addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(5, 4)];
    // 字體大小
    [exAttributedString addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:25] range:NSMakeRange(5, 4)];
    // 背景顏色
    [exAttributedString addAttribute:NSBackgroundColorAttributeName value:[UIColor grayColor] range:NSMakeRange(5, 4)];
    // 字間距
    [exAttributedString addAttribute:NSKernAttributeName value:[NSNumber numberWithInt:5] range:NSMakeRange(5, 4)];
    exLabel.attributedText = exAttributedString;

  效果圖:

  

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息