Just a Computer Graphics Studio & My Life

最基本的標籤使用只能讓同一字串有著同樣的屬性,那麼我想要有多重文字屬性 (Multiple Text Attribute)該怎麼做?比如字體有大有小,又如顏色有紅有黃,再如上標和下標等等,這一切都已經能實現了!

文字屬性 Text Attribute

其實只要使用AttributedString就能同時塞入多種屬性,記得匯入<CoreText/CTStringAttributes.h>才能使用喔!

/**
 Theme: Multiple Text Attribute
 IDE: Xcode 5
 Language: Objective C
 Date: 103/05/26
 Author: HappyMan
 Blog: https://cg2010studio.wordpress.com/
 */
#import <CoreText/CTStringAttributes.h>

- (void)viewDidLoad
{
    [super viewDidLoad];
    UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 100, 200, 80)];
    NSString *infoString = @"我是快樂測試人 歡迎來逍遙文工作室";

    NSMutableAttributedString *attString=[[NSMutableAttributedString alloc] initWithString:infoString];

    // 上標
    [attString addAttribute:(NSString *)kCTSuperscriptAttributeName value:@1 range:NSMakeRange(2, 2)];

    // 下標
    [attString addAttribute:(NSString *)kCTSuperscriptAttributeName value:@-1 range:NSMakeRange(8, 2)];

    // 字體
    UIFont *font = [UIFont fontWithName:@"Avenir-Light" size:24];
    [attString addAttribute:NSFontAttributeName value:font range:NSMakeRange(11, 6)];

    // 顏色
    UIColor *color = [UIColor whiteColor];
    [attString addAttribute:NSForegroundColorAttributeName value:color range:NSMakeRange(11, 3)];

    label.attributedText = attString;
    [label sizeToFit];

    [self.view addSubview:label];
}

編譯執行後的結果你在文章頂端就已經看過囉!

參考:How can I set the color and alignment of attributed text in a UITextView in iOS 7?如何添加下列字符‡,†,*为上标为NSString在iOS

廣告

Comments on: "[iOS] 多重文字屬性 (Multiple Text Attribute)" (1)

  1. […] 此外,可參考先前介紹的文章:多重文字屬性 (Multiple Text Attribute)、LABEL裡的行距、LABEL裡的字距。 […]

    按讚數

發表留言

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

標籤雲

%d 位部落客按了讚: