![](/img/trans.png)
[英]iOS - Is it possible to make UIFont SystemFont Italic and Thin (without using fontWithName:)?
[英]Change the default systemFont used by controls
我有一個很大的應用程序,需要更改字體,但是我不想觸摸每個標簽,文本字段等。 如何訪問IB和[UIFont systemFontOfSize:x]
使用的“ [UIFont systemFontOfSize:x]
?
我已經嘗試過這一方法: iOS 5:對UIAppearance感到好奇,但這不是解決方案,因為我的App上都有不同的FontSizes和Bold / Regular,因此無法整體設置。
我可以通過UIApplication或InfoPlist中的某個位置進行設置嗎?
您可以為UILabel,UITextField和UIButton創建類別,並且可以在“ awakeFromNib”方法中,可以將字體名稱更改為新字體,並且可以保持相同的大小。 我在下面為UILabel類添加了代碼。 您可以對UITextField和UIButton進行相同的操作。
@implementation UILabel (CustomFontLabel)
-(void)awakeFromNib{
[super awakeFromNib];
float size = [self.font pointSize];
NSString *stringfontstyle=self.font.fontName;
if([stringfontstyle rangeOfString:@"Bold"].location != NSNotFound) {
self.font = [UIFont fontWithName:@"MyCustomFont-Bold" size:size];
}
else if ([stringfontstyle rangeOfString:@"Italic"].location != NSNotFound) {
self.font = [UIFont fontWithName:@"MyCustomFont-Italic" size:size];
}
else if ([stringfontstyle rangeOfString:@"Medium"].location != NSNotFound) {
self.font = [UIFont fontWithName:@"MyCustomFont-Medium" size:size];
}
else {
self.font = [UIFont fontWithName:@"MyCustomFont" size:size];
}
}
@end
實際上,Paramasivan的答案只是部分正確。 問題是,例如,如果UILabel
實現awakeFromNib
,它將永遠不會被調用。 您的類別將覆蓋此方法。 您可以調整或覆蓋它,如下所示:
http://www.mikeash.com/pyblog/friday-qa-2010-01-29-method-replacement-for-fun-and-profit.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.