[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和外观的问题,尽管有些人确实有一些问题,但总体上看似可行,所以我不明白我在这里做错了什么。
答案 0 :(得分:0)
@matt的评论使我发现了错误。 (不幸的是,他撤回了他的答案,所以我不能给他他应得的学分,如果您正在听@matt,请再给出一个答案以得到学分。)
之所以如此,是因为它似乎是iOS 12中的错误。 在(测试版)iOS 13下,行为符合预期。