2012-08-24 18 views
2

我有2個UILabels用於記錄應用程序(主頁和離開)。用戶可以點擊Home或Away並將標籤更改爲任何他們喜歡的內容。這一切工作正常。當用戶輸入一個大於標籤大小的名稱時,它將縮小字體以適合該字體。這使得2個標籤不再匹配字體大小,並且看起來不正確。我的問題:如何將一個標籤的字體大小設置爲另一個「自動收縮」標籤的大小?確定自動收縮後的字體大小

我也意識到我需要編寫代碼來確定哪兩個標籤之間的字體大小較小,並將它們都設置爲該數字。我認爲我不會有任何問題,只要我能夠回答上述問題。它看起來應該很簡單,但它迄今爲止一直困擾着我。

回答

0

對於我這個工作得很好:

- (CGFloat)actualTitleFontSize 
{ 
    NSStringDrawingContext *labelContext = [NSStringDrawingContext new]; 
    labelContext.minimumScaleFactor = 0.2; 

    NSAttributedString *attributedString = 
     [[NSAttributedString alloc] initWithString:label.text attributes:@{NSFontAttributeName : label.font}]; 
    [attributedString boundingRectWithSize:label.frame.size 
            options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading 
            context:labelContext]; 

    CGFloat actualFontSize = label.font.pointSize * labelContext.actualScaleFactor; 

    return actualFontSize; 
}