2011-12-29 43 views
0

我的viewController視圖中有一個UIImageView對象,該對象預裝了一個輪子圖片。但是,輪子的旋轉取決於一天中的時間。所以當程序啓動時,我喜歡通過當前時間的正確旋轉來初始化輪子。我試圖在控制器的viewDidLoad方法中進行旋轉。雖然這可行,但人們可以根據時間明顯地看到初始位置並切換到新位置。使用目標c以編程方式初始化故事板中的對象

我喜歡初始化是不可見的,也就是在視圖加載之前發生的初始化。我應該在哪裏做?

+0

車輪的初始化是否異步發生?添加一些代碼會很方便。 – thvanarkel 2011-12-29 18:23:13

回答

2

我喜歡初始化是不可見的,那就是在視圖加載之前發生的初始化 。我應該在哪裏做?

無論何時控制器的view屬性被訪問,並且在該點調用-viewDidLoad,視圖控制器的視圖都會被加載。把你的代碼設置在-viewDidLoad的視圖是正確的事情。在加載之前,您無法初始化視圖,因爲它不存在直到它已加載,但您應該能夠在顯示之前對其進行設置。

如果您在-viewDidLoad中沒有執行任何操作會導致輪子設置延遲到稍後的時間點,那麼您可以嘗試稍早加載視圖控制器的視圖。例如,您可以在您的視圖控制器中實現-prepareForSegue:sender:,以便它訪問view屬性,這會導致視圖被加載。

+0

您是否只是在冗餘的代碼行中訪問該視圖以強制其加載?這可以接受嗎?目標VC中的用戶界面對象在prepareForSegue中無法使用,這讓我非常煩惱,我沒有意識到讓它們可用是很容易的! – jrturton 2011-12-30 08:45:58

0

你也可以創建一個繼承自UIView的自定義類,並在didMoveToWindow方法中設置一些自定義的inits(在你的情況下設置一個旋轉變換)。

相關問題