0
我有一個子類UIView與UILabel與作爲子視圖添加到視圖。在layoutSubviews方法計算UILabel的位置和高度。我的問題是,當UILabel的文本改變時,應該重新計算這個高度。文本被插入到UIViewController的標籤中,所以視圖不知道這是什麼時候發生的。如何在UILabel中的文本更改時重畫UIView?
我有一個子類UIView與UILabel與作爲子視圖添加到視圖。在layoutSubviews方法計算UILabel的位置和高度。我的問題是,當UILabel的文本改變時,應該重新計算這個高度。文本被插入到UIViewController的標籤中,所以視圖不知道這是什麼時候發生的。如何在UILabel中的文本更改時重畫UIView?
你也可以繼承UILabel
覆蓋setText:
這樣的:
@implementation MyLabel
- (void)setText:(NSString *)text {
[super setText:text];
[self.superview setNeedsLayout];
}
的似乎並不作爲一個非常靈活的解決方案。事實上,它不僅僅是一個我需要重繪的UILabel - 也就是當它的圖像被替換時UIImageView的大小。 – dhrm 2012-02-25 08:24:14
「UILabel」和「UIImageView」都沒有選項可以在內容更改時自動調整其大小。你必須告訴它調整大小。你可以從改變內容的代碼(可能是很多地方)來完成,也可以創建子類。 – 2012-02-25 08:38:05