我想設置一個自定義UIView類的背景顏色。該課程還採用drawRect:
方法進行石英拉伸。用drawRect設置UIView backgroundColor:
由於在下一次重繪視圖之前不會發生背景顏色變化,所以在調用setNeedsDisplay
之前,我更改了UIView的backgroundColor
屬性。我在視圖重繪時設置了一個UIActivityIndicatorView
動畫。
self.backgroundColor = theColor;
[indicator startAnimating];
[self performSelectorInBackground:@selector(setNeedsDisplay) withObject:nil];
該指標在setNeedsDisplay
的末尾處停止。每當我需要調用這個時,theColor
都會改變。
比方說我有一個耗時setNeedsDisplay
的過程。我想設置背景並保持指標動畫。目前,更改backgroundColor
調用setNeedsDisplay
,但直到performSelectorInBackground
方法運行才更改backgroundColor!因此,我的應用程序掛起,並沒有任何指標是動畫。 我該如何處理這個訂購問題?謝謝。
編輯:我的意思是說我的drawrect:
可能很耗時。
'setNeedsDisplay'不耗時,它是'drawRect:'。但不管怎樣,你都不應該調用'drawRect:'。 – 2013-02-24 01:00:39