我正在製作一個簡單的iPhone應用程序,它的唯一功能是永久更新UIView(直到它退出)。一次又一次更新UIVIew
我的applicationDidFinishLaunching和viewDidLoad中嘗試這樣做:
while(1) { // update view here }
但是,這並不與工作的應用從未完成加載。我確信有一個簡單的解決方案,我只是不知道它是什麼。
另外:理想情況下,這個過程應該消耗非常少的資源。
我正在製作一個簡單的iPhone應用程序,它的唯一功能是永久更新UIView(直到它退出)。一次又一次更新UIVIew
我的applicationDidFinishLaunching和viewDidLoad中嘗試這樣做:
while(1) { // update view here }
但是,這並不與工作的應用從未完成加載。我確信有一個簡單的解決方案,我只是不知道它是什麼。
另外:理想情況下,這個過程應該消耗非常少的資源。
你不能有一個while (1)
說法好像有,因爲它不允許viewDidLoad中返回,和你的應用程序將永遠不會得到任何其他調用如自來水處理,屏幕上繪製更新等
在viewDidLoad中,設置一個計時器任務使用:
updateTimer = [NSTimer scheduledTimerWithTimeInterval: kUpdateTimeInterval target:self selector:@selector(updateView) userInfo:nil repeats:YES];
並且有一個名爲updateView
的方法實際上進行更新。您也可以使用setNeedsDisplay
而不是updateView
,這會觸發視圖類的-drawRect方法,並在那裏執行實際繪製。
現在發生的事情是,您的viewDidLoad將設置重複任務,並且在每個kUpdateInterval處,您的視圖都將被更新。
謝謝,這正是我一直在尋找的:) – igul222 2009-10-14 03:51:27
而不是一直更新視圖,也許你可以在你顯示的數據發生變化時調用它的-setNeedsDisplay方法。
你究竟想用'UIView'做什麼?更新其內容?它的位置? – 2009-10-12 00:32:05
背景顏色 - 我正在製作一個生成配色方案的應用程序。 – igul222 2009-10-12 04:07:16