2011-05-20 92 views
1

在我的應用程序中,從另一個類調用委託回調函數。這個委託功能是重畫屏幕。 一樣,UIView不更新UILabel

-(void)repaint { 
    [self.view setNeedsDisplay]; 
} 

我甚至去掉從UIView的子視圖,然後再添加子視圖。但問題仍然存在。

我的UIView沒有更新。

我有NSLog的label.text和文本更新。但屏幕視圖不會更新。

任何人都可以請幫助我。

謝謝

+0

也許,你只需要改變的其他文本標籤? ; ) – Zapko 2011-05-20 13:57:14

+0

檢查文本和alpha的顏色。 – quaertym 2011-05-20 14:04:17

+0

你確定你在Interface Builder中連接了標籤嗎? – FreeAsInBeer 2011-05-20 14:50:30

回答

0

一個想法和建議。如果你正確地改變了文本,那麼你不需要告訴你的視圖setNeedsDisplay - 標籤會告訴它。 (這個調用通常是在drawRect中有代碼時完成的:你需要執行代碼)

1)當標籤改變時,它是否在主線程上完成?主線程是否回調?斷言添加到您的代碼的任何地方該標籤被選中:

NSAssert([NSThread isMainThread], @"Yikes! Not on main thread"); 
NSAssert(label, @"Yikes! No label"); 

2)在委託之上,嘗試改變了一堆有關該標籤的東西

label.text = @"Hello World"; 
label.textColor = [UIColor redColor];