1

我在我的项目中使用TTTAttributedLabel。我正在尝试为该标签应用自定义字体。

#define DEFAULT_FONT(s)     [UIFont fontWithName:MY_FONT_NAME size:s]

我使用下面的代码来设置字体:

@property(nonatomic, strong) TTTAttributedLabel *welcomeMessage;

NSString *welcomeMessageString = [[NSString stringWithFormat:@"%@",[self.dashboardViewModel getWelcomeMessage]] uppercaseString];
    [self.welcomeMessage setText:welcomeMessageString afterInheritingLabelAttributesAndConfiguringWithBlock:^NSMutableAttributedString *(NSMutableAttributedString *mutableAttributedString){
        NSRange boldRange = [[mutableAttributedString string] rangeOfString:@"Welcome " options:NSCaseInsensitiveSearch];

        NSRange colorRange = NSMakeRange((boldRange.location + boldRange.length), (welcomeMessageString.length - boldRange.length));
        UIFont *systemBoldFont = DEFAULT_FONT(13);
        CTFontRef boldFont = CTFontCreateWithName((__bridge CFStringRef)systemBoldFont.fontName, systemBoldFont.pointSize, NULL);
        if (boldFont) {
            [mutableAttributedString addAttribute:(NSString *)kCTForegroundColorAttributeName value:(id)RGB(134.0, 0, 0).CGColor range:colorRange];
            CFRelease(boldFont);

        }


        return mutableAttributedString;
    }];
    self.welcomeMessage.font = DEFAULT_FONT(13);

但在我的应用程序中,字体没有被应用。我需要黑色的“欢迎”文本,文本的其余部分为红色。但是对于我的标签,我需要应用我的自定义字体。

4

2 回答 2

2

试试这个,

 CTFontRef boldFont = CTFontCreateWithName((__bridge CFStringRef)systemBoldFont.fontName, systemBoldFont.pointSize, NULL);
    if (boldFont) {
        [mutableAttributedString addAttribute:(NSString *)kCTFontAttributeName value:(__bridge id)boldFont range:nameRange];
        CFRelease(boldFont);

    }
于 2014-03-21T09:02:27.973 回答
0

这里

if (boldFont) {
    [mutableAttributedString addAttribute:(NSString *)kCTForegroundColorAttributeName value:(id)RGB(134.0, 0, 0).CGColor range:colorRange];
    CFRelease(boldFont);
}

您正在检查boldFont,然后添加颜色。这是正确的吗?如果您需要添加字体使用kCTFontAttributeName键。

于 2014-03-21T09:03:33.163 回答