如何反映setNeedsDisplay
的UIView更改?繪圖後反映UIView更改
在drawRect
通過setNeedsDisplay
- (void)drawRect:(CGRect)rect {
double i = 0;
for(...)
//i is incremented
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(i * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
drawStuff(element, context);
});
例如觸發,每次抽獎將更新後的1S,2S,3S發生,...
DrawStuff
切換回主線程與
dispatch_async(dispatch_get_main_queue(), ^(void) { ...
更新UI時。我已經嘗試了UIBezierPath
和核心圖形並獲得相同的結果。我也使用UIGraphicsPushContext
和UIGraphicsPopContext
來獲取正確的上下文。
使用NSLog,我可以告訴drawStuff以1s爲增量調用。但是,可見的UIView保持不變。我可以旋轉設備屏幕,這將重新定位UIView並更改其大小。在旋轉時,UIView將反映它當前繪製的內容,但是之後我需要再次旋轉它以在幾秒後看到更新的狀態。
回到上面的問題,是否有電話告訴UIView在setNeedsDisplay
之後顯示其當前圖形?謝謝。