gpt4 book ai didi

ios - UILabel外观字体和属性字符串字体

转载 作者:技术小花猫 更新时间:2023-10-29 10:21:25 28 4
gpt4 key购买 nike

在我的应用程序中,我将全局自定义字体应用于所有标签,如下所示:

UIFont *font = [UIFont fontWithName:kMyFontName size:15.0]; 
[[UILabel appearance] setFont:font];

这很好用。但是,在某些情况下,我希望能够为 UILabel 字符串的特定区域指定不同的字体。

所以我有这样的东西:

NSString *string = @"Foo Bar Baz";
UIFont *boldFont = [UIFont fontWithName:kMyBoldFontName size:15.0];
NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:string];
[attrString setAttributes:@{ NSFontAttributeName: boldFont } range:NSMakeRange(0, 3)];
self.myLabel.attributedText = attrString;

但是这似乎不起作用。我希望“Foo”是粗体,但整个字符串只有默认字体。就好像粗体根本没有应用,而是被 UILabel 外观代理上设置的字体覆盖。

当我删除 UILabel 外观行时,它工作正常(我可以看到部分字符串以粗体显示)。基本上我想将我的自定义字体应用于标签,但将单独的字体应用于字符串的不同区域。通常这对属性字符串可以正常工作,但由于某些原因设置 UILabel 外观字体会禁用此功能(或看起来如此)。

  • 预期结果:“Foo Bar Baz”
  • 实际结果:“Foo Bar Baz”

如果我删除 [[UILabel appearance] setFont:] 行然后它工作:

  • Foo Bar Baz”

(但自定义字体未在字符串的其余部分设置)。

所以我的问题是:有没有一种方法可以指定一种字体用作应用程序范围内的默认字体,但仍然能够使用属性字符串部分覆盖它?

此外,如果有人可以向我解释为什么这不起作用,我将不胜感激。

最佳答案

在设置属性字符串之前将 font 和 textColor 设置为 nil。

关于ios - UILabel外观字体和属性字符串字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25028631/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com