[英]Change font of UILabel with autolayout
通常,您使用:
label.adjustsFontSizeToFitWidth = YES;
使標簽在不再可能增加其框架大小時減小其字體大小。
有沒有辦法讓它嘗試其他字體,例如在減小字體大小之前,該字體家族的精簡版本?
有幾種很好的方法可以解決此問題。 在IB中,選擇您的標簽:
方法1:
如果單擊加號按鈕,則可以為給定的尺寸類別添加特定的字體。
在代碼中:
- (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection
{
if(self.view.traitCollection.horizontalSizeClass == UIUserInterfaceSizeClassRegular && self.view.traitCollection.verticalSizeClass == UIUserInterfaceSizeClassRegular)
{
//iPad here
myLbl.Font = [UIFont fontWithName:@"Heyo" size:10];
}
}
我認為更好的方法是方法2:
使用這種方法,您可以告訴字體縮小到一定大小,或者標識比例因子。 玩弄這些值,直到獲得所需的結果。 我還將在本教程中討論這個主題。
在代碼中:
//Minimum font size
[myLbl setMinimumScaleFactor:MIN_FONT_SIZE/[UIFont labelFontSize]];
//Scale factor
[myLbl setMinimumScaleFactor:0.4];
這對我不起作用,但確實如此。 您還需要在IB中使用系統字體
#import <UIKit/UIKit.h>
@interface UILabelEx : UILabel
@end
#import "UILabelEx.h"
#import "Constants.h"
@implementation UILabelEx
- (void) traitCollectionDidChange: (UITraitCollection *) previousTraitCollection {
[super traitCollectionDidChange: previousTraitCollection];
self.font = [UIFont fontWithName:APP_FONT size:self.font.pointSize];
}
@end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.