UILabel的外观似乎无济于事

时间:2019-07-17 17:00:56

标签: ios uiview uilabel uiappearance

[UILabel appearance]似乎不适用于最新的iOS SDK。

我们以这个为例:

- (void)viewDidLoad {
    [super viewDidLoad];
    [[UILabel appearance] setBackgroundColor:[UIColor redColor]];
    [self.view addSubview:[[UILabel alloc] initWithFrame:CGRectMake(40, 80, 200, 100)]];
}

此代码不会以红色背景显示标签。

如果使用此代码,则:

- (void)viewDidLoad {
    [super viewDidLoad];
    [[UIImageView appearance] setBackgroundColor:[UIColor redColor]];
    [self.view addSubview:[[UIImageView alloc] initWithFrame:CGRectMake(40, 80, 200, 100)]];
}

然后红色区域可见。

即使我更改了属性,即更改字体或文本颜色(并显示一些文本),也看不到任何更改。

在大多数S.O.有关UILabel和外观的问题,尽管有些人确实有一些问题,但总体上看似可行,所以我不明白我在这里做错了什么。

1 个答案:

答案 0 :(得分:0)

@matt的评论使我发现了错误。 (不幸的是,他撤回了他的答案,所以我不能给他他应得的学分,如果您正在听@matt,请再给出一个答案以得到学分。)

之所以如此,是因为它似乎是iOS 12中的错误。 在(测试版)iOS 13下,行为符合预期。