有點晚,但我需要一個標籤,將擴展到所有的設備和使用這種方法。
創建的UILabel,並在把這個.h文件中一個新的子類...
#import <UIKit/UIKit.h>
IB_DESIGNABLE
@interface OTHD_ScalableLabel : UILabel
@property (nonatomic, assign) IBInspectable CGFloat fontScale;
@end
,並把這個.m文件...
#import "OTHD_ScalableLabel.h"
@implementation OTHD_ScalableLabel
- (void) layoutSubviews
{
[super layoutSubviews];
if(self.fontScale < 0.1 || self.fontScale > 1.0) self.fontScale = 1.0;
CGFloat height = CGRectGetHeight(self.bounds) * self.fontScale;
if(height) self.font = [UIFont fontWithName:self.font.fontName size:height];
}
@end
然後,您可以只改變你的類IB和使用IBInspectable,您將能夠向上或向下縮放標籤。顯然,對於那裏的學生來說,這不是一個普遍使用的好主意,但是在某些情況下,您可能需要使用一個大型標籤,這些標籤可以在iPhone上全屏顯示,也可以在iPad上顯示全屏。 @iBhaviks的
這都是儘可能相同尺寸等級和設備類型。如果您正在自動佈局,視圖大小會隨着屏幕比例的變化而改變。你能顯示爲什麼你需要不同的字體大小的屏幕截圖? – matt 2014-11-21 16:31:03
@matt你可以在這裏看到iPhone 6以上的文件。由於NDA我不能分享真正的版本。我只需要在每個標籤之間留有空白,我確實有一些控制權。 https://www.dropbox.com/s/ycar93s6j8djv33/Screen%20Shot%202014-11-22%20at%2012.51.44%20AM.png?dl=0 – Bluewings 2014-11-21 16:56:25
感謝您的屏幕截圖,但是您認爲是什麼它有錯嗎? – matt 2014-11-21 17:02:05