我希望自定义我的应用中的所有字体,并且一直使用[UILabel appearance]
API,因为它似乎是阻力最小的路径。
我注意到这也会影响UIAlertView
内部的标签(正如预期的那样),但我也知道自定义警报视图可能会导致应用被拒绝。
有没有人有这方面的经验?我应该只创建自己的UILabel
子类并将其手动应用于我的应用中的每个标签吗?
答案 0 :(得分:1)
UILabel类符合UIAppearanceContainer协议,对UILabel.h的检查表明,它的所有属性都没有使用UI_APPEARANCE_SELECTOR标记,这是使用UIAppearance的先决条件。所以你需要创建UILabel子类,如下所示。
@interface SmallLabel : UILabel
@end
@implementation SmallLabel
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
}
return self;
}
@end
我认为你可以在你的子类中使用类似的东西:
UIFont *newFont = [UIFont fontWithName:@"YourFontName" size:self.font.pointSize];
self.font = newFont