2014-02-24 41 views
0

所以我在Xcode中有一個標籤,它根據按下的不同按鈕加載不同的文本。加載到標籤中的文本具有不同的長度。該標籤足夠大以容納所有可以加載的不同文本,但我遇到了一個問題。當有很多文本時,它會從標籤的頂部開始加載,但如果文本只有一行,它會在標籤中垂直居中。有什麼方法可以確保加載到標籤中的文本始終從第一行開始? 在此先感謝。UILabel - 多行

+0

您是否將AutoLayout用於您的標籤? – jervine10

回答

1

沒有可以做到的UILabel的垂直對齊屬性。您可以使用:

[yourLabel sizeToFit]; 

來實現這一點,但它可能不是最好的解決方案適合你,因爲它會改變標籤的框架。還設置標籤設置爲多:

yourLabel.numberOfLines = 0; 

您還可以計算CGRect,將適合的文字,並將其設置爲UILabel的新框架。

CGRect boundingRect = [message boundingRectWithSize:CGSizeMake(your_desired_width, MAXFLOAT) 
              options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading 
              context:nil]; 
+0

您也可以使用UITextField並關閉所有用戶交互標誌。 –

2

如果您使用自動佈局,標籤的高度將自行設置。修正頂部,前沿和尾部邊緣到超視圖,並設置numberOfLines = 0。設置文本時,textLabel的高度會相應調整。

如果您然後將下一個子視圖的頂部固定到標籤底部,它們之間的間距將保持不變。