2012-03-08 58 views
1

我正在研究一個應用程序,主視圖是UITabViewController。在UITabViewController下有三個UIViewControllers和一個UITableViewController。在其中一個UIViewControllers下是一個UIView和一個符合NSXMLParserDelegate的NSObject。下面是在較高的水平結構的輪廓: 的AppDelegate:UIResponder UIViewController1 &廈門國際銀行 UIViewController2 &廈門國際銀行 UIViewController3 &廈門國際銀行 的UIView(CG電話在這裏) 的NSXMLParser 的UITableViewController &廈門國際銀行iOS/Xcode - drawRect:不在UIView子類中調用

的UIViewController中的廈門國際銀行有一個UIView的插座。 UIView的一個實例在UIViewController中被分配和初始化。 UIView然後alloc和init的NSXMLParser,加載數據,完成繪圖並執行[self setNeedsDisplay]。該應用程序編譯沒有錯誤,我已驗證XML數據正在加載和正確解析。

問題是,當UIView被初始化時,調用UIView中的drawRect:但永遠不會。 drawRect:被調用時,數據尚未加載,所以沒有繪製任何內容。我已經驗證[self setNeedsDisplay]正在被調用,但是drawRect:不會再被調用。

任何人都知道爲什麼drawRect:只被調用一次?謝謝。

回答

0

您是否有一些代碼正在運行,或許與您的XML解析器有關,即阻塞了主線程?如果是這樣,UI更新將不會發生,直到運行循環的下一次迭代。

可以通過調用強制運行循環迭代:

[[NSRunLoop currentRunLoop] runMode: NSDefaultRunLoopMode beforeDate: [NSDate date]]; 

更多信息,this answer找到。

相關問題