我一直在寻找接近2个小时,并且找不到这个问题的可靠答案。
我尝试使用外观机制,但似乎你无法用它来改变字体。
我看过这里建议的答案: How to change all UIButton fonts to custom font
有3个答案:
编辑:如果你实现 - (id)initWithCoder:(NSCoder *)uibutton的aDecoder方法,则回答3 这使您只需在界面构建器中更改类,但仍需要对项目中的所有按钮执行此操作。
有没有人有任何新想法?
答案 0 :(得分:6)
在Swift3中
UIButton.appearance().titleLabel?.font = font
答案 1 :(得分:2)
由于某种原因,只有来自Apple的神知道,
[[[UIButton appearance] titleLabel] setFont:fontButton];
不起作用。
中提到了一个对我有用的解决方案How to set UIButton font via appearance proxy in iOS 8?
Objective-C中的解决方案是创建一个公开titleLabel字体的类别
<强>的UIButton + TitleLabelFont.h 强>
#import <UIKit/UIKit.h>
@interface UIButton (TitleLabelFont)
@property (strong, nonatomic) UIFont *titleFont;
@end
<强>的UIButton + TitleLabelFont.m 强>
#import "UIButton+TitleLabelFont.h"
@implementation UIButton (TitleLabelFont)
- (UIFont *)titleFont {
return self.titleLabel.font;
}
- (void)setTitleFont:(UIFont *)titleFont {
self.titleLabel.font = titleFont;
}
@end
然后在您使用
设置外观的源中导入类别UIButton + TitleLabelFont#import "UIButton+ASLAdditions.h"
您将能够使用
设置外观[UIButton appearance].titleFont = fontButton;
经过测试和完美的工作
答案 2 :(得分:1)
您可以使用UIAppearance自定义任何控件的视图。您可以在NSHipster上这篇非常有用的文章中查看更多信息。
答案 3 :(得分:-1)
for (UIButton *button in self.view.subviews) {
if ([button isKindOfClass:UIButton.class]) {
button.titleLabel.font = [UIFont fontWithName:@"HelveticaNeue-Thin" size:14.0f];
}
}
如果您无法使链接的问题起作用,则可以正常工作。