gpt4 book ai didi

ios - 当 View 重新出现时,为什么我的 NSAttributed String 会丢失其属性?

转载 作者:行者123 更新时间:2023-12-01 16:40:09 26 4
gpt4 key购买 nike

我在我的应用程序中使用 UIAppearanceProxy,如下所示:

UILabel *label = [UILabel appearance];
label.font = myAppFont;
label.textColor = myAppTextColor;

不过,有时我想覆盖默认字体以使用 Awesome Font 中的字形。 .我这样做:
    NSString *basePos = [NSString stringWithFormat:@"%d %@", (int)self.user.positives, kUpArrow];
NSMutableAttributedString *posString = [[NSMutableAttributedString alloc] initWithString:basePos];
[posString setAttributes:@{NSFontAttributeName:[UIFont fontWithName:@"FontAwesome" size:18]} range:NSMakeRange([posString length] - 1, 1)];
[self.positivesLabel setAttributedText:posString];

当 View 构建并出现时,这很有效,但是如果我导航到另一个页面(我正在使用 UIPageViewController)并返回,我的属性就消失了。

我尝试在以下位置重新设置属性:
  • viewWill出现:
  • viewDidAppear:
  • viewWillLayoutSubviews
  • viewDidLayoutSubviews

  • ……无济于事。此字符串何时重置为默认值?我怎样才能覆盖它?

    最佳答案

    类似的事情发生在我身上。

    发生这种情况的原因是因为我设置了 font UILabel 的外观代理上的属性,并且无论出于何种原因在 View 重新出现时超过了属性字符串的属性。

    我通过设置 font 解决了这个问题UILabel 上的属性(property)至nil在设置 attributedText 之前.请注意,设置 font任何字体也解决了这个问题;它不一定需要设置为nil .

    关于ios - 当 View 重新出现时,为什么我的 NSAttributed String 会丢失其属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25103284/

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