2012-02-24 60 views
0

我有一個子類UIViewUILabel與作爲子視圖添加到視圖。在layoutSubviews方法計算UILabel的位置和高度。我的問題是,當UILabel的文本改變時,應該重新計算這個高度。文本被插入到UIViewController的標籤中,所以視圖不知道這是什麼時候發生的。如何在UILabel中的文本更改時重畫UIView?

回答

1

你也可以繼承UILabel覆蓋setText:這樣的:

@implementation MyLabel 

- (void)setText:(NSString *)text { 
    [super setText:text]; 
    [self.superview setNeedsLayout]; 
} 
+0

的似乎並不作爲一個非常靈活的解決方案。事實上,它不僅僅是一個我需要重繪的UILabel - 也就是當它的圖像被替換時UIImageView的大小。 – dhrm 2012-02-25 08:24:14

+0

「UILabel」和「UIImageView」都沒有選項可以在內容更改時自動調整其大小。你必須告訴它調整大小。你可以從改變內容的代碼(可能是很多地方)來完成,也可以創建子類。 – 2012-02-25 08:38:05

相關問題