2011-06-03 65 views
0

我有一個名爲basicLayer的圖層,並且我有一些路徑需要在函數drawlayer中繪製:incontext, 所以我調用了[basicLayer setneedsdisplay];它會調用drawlayer:incontext atomaticlly,但它沒有叫drawlayer:incontext instantlly,所以我的問題是我怎樣才能立即調用drawlayer:[baseLayer setneedsdisplay]之後的incontext;這消耗我僕人小時,請幫助我?calayer setneedsdisplay即時調用drawlayer:incontext

[basicLayer setNeedsLayout]; 
[NSThread sleepForTimeInterval:1.0]; 

我需要畫一些路徑,然後睡1秒。

回答

0

不要這樣做!致電sleepForTimeInterval:通常不是一個好主意。特別是在主線程(我假設你是),這是絕對不行的,因爲你以這種方式阻止了整個用戶界面。

如果您需要等待一秒鐘,請執行如performSelector:withObject:afterDelay(或與Grand Central Dispatch的同等呼叫)。致setNeedsLayout的電話很好。

+0

那沒有解決我的問題,請幫我 – juliet 2011-06-04 04:54:13

+0

你需要更具體一點。正如Ole提到的,sleepForTimeInterval:可能是您的問題。如果刪除不能解決問題,請檢查您阻塞該線程的其他位置。請記住,在主線程有機會返回到runloop之前,drawLayer不會被調用。 – fishinear 2011-11-21 10:58:00