2012-02-29 108 views
3

我得到了一些應用程序的一些文本數據。創建靈活的UILabel

從TableView用戶選擇一個單元格,然後使用相關文本數據查看UIViewController。但是信息文本可能從1行到N.如何創建這樣的UILabel,它將根據文本的大小改變大小?

回答

2

您可以設置標籤的numberOfLines屬性以指定它可以換行的行數。如果將其設置爲零,則可以換行至任意數量的行。你可以在你的筆尖中設置這個屬性。

但是,您還需要設置足夠大的幀以顯示所有行。最簡單的方法是在設置其文本後發送sizeToFit消息。它會保持其寬度(我認爲),但將其高度改爲足夠高以便在包裝後顯示其所有線條。

如果您的文字太多而不適合放在屏幕上(或不適合您的標籤可用空間),則應該使用UITextView。 A UITextView允許自動滾動。

+0

我可以爲該標籤設置固定寬度嗎?然後採取高度? – 2012-02-29 07:30:36

+0

檢查出[這個問題和答案](http://stackoverflow.com/questions/406212/sizing-a-uilabel-to-fit) – ayoy 2012-02-29 07:44:39

3

在的NSString UIKit的添置的字體,你可以找到下面的方法:

- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode 

這一個,你可以定義標籤的最佳高度或寬度。例如,爲了獲得一個UILabel的最佳高度,您可以創建的UILabel類別下面的方法:

- (float)optimalHeight 
{ 
    return [self.text sizeWithFont:self.font constrainedToSize:CGSizeMake(self.frame.size.width, UINTMAX_MAX) lineBreakMode:self.lineBreakMode].height; 
} 

,你可以簡單地改變你的UILabel的框架。不要忘記將標籤的行數設置爲0.