2013-03-30 32 views
0

我對Xcode相當陌生,但對編程並不陌生。從定時器觸發drawRect

我正在使用XCode 4.6.1使用Storyboard創建應用程序以在iPad上運行。

我不熟悉NIB,只有Storyboard。

我MainViewController需要兩個功能區 -

  1. 的曲線圖是從計時器刷新10次,每次從監視器第二模擬讀數。
  2. 下面有按鈕/文本框等來改變控制輸出到圖形的參數。

我想讓計時器觸發刷新的圖。 我已經嘗試添加一個imageView(在故事板和代碼中)無濟於事。

我找不到一種方法來實現這一點,我發現了一種使用舊式NIB的方法。這使用視圖的「所有者」實例,但Storyboard不使用視圖的「所有者」。

有沒有什麼特殊的viewController,不會允許這個輸出顯示(在viewController)?

顯然我需要擴展我的viewController與UIView,然後 實現函數drawRect重繪圖使用setNeedDisplay。

誰能告訴我該怎麼做?

非常感謝。

回答

0

你應該從不嘗試自己調用drawRect。它只能在正確的時間由操作系統調用。它建立了一個GraphicsContext來繪製,並計算出什麼是繪製和其他重疊視圖需要繪製的圖形!

改爲撥打setNeedsDisplay! :)


所以。例如

- (void) refreshTimerDidFire { 
    [viewToRefresh setNeedsDisplay]; 
} 
+0

ViewController的視圖是'viewController.view',但你應該只刷新真正改變的視圖 - 不是所有的 –