2013-06-29 156 views
0

我想動態地確定每行應該在表視圖中使用sizeWithFont的大小,但它總是0.0由於某種原因。這裏是我的代碼:sizeWithFont總是返回0

- (CGFloat)labelHeight:(NSString *)text { 
     CGSize expectedLabelSize = [text sizeWithFont:[UIFont fontWithName:@"DINCond-Medium" size:14] 
            constrainedToSize:CGSizeMake(218, 100000) 
             lineBreakMode:NSLineBreakByWordWrapping]; 

     NSLog(@"Height: %1f", expectedLabelSize.height); 

     return expectedLabelSize.height; 
    } 

我不知道爲什麼它會返回0有史以來。

任何幫助將是wunderbar。謝謝。

+2

是那種字體可用? – adali

+0

分割代碼。 'UIFont * font = [UIFont fontWithName:@「DINCond-Medium」size:14];'。然後你可以檢查'font'是否爲'nil'。同時驗證'text.length> 0'(這包括確保它不是'nil')。 – rmaddy

+0

您是否在應用的info.plist文件中指定了字體?如果沒有,則需要設置以下屬性「應用程序提供的字體」。 – ldindu

回答

2

我想[text sizeWithFont:[UIFont fontWithName:@"DINCond-Medium" size:14]返回nil在你的情況下,因爲字體找不到。確保使用字體的專有名稱,並在Info.plist中指定它。

有關更詳細的說明,請參閱此answer

+0

謝謝!字體丟失。 –