Custom Draw в NSView без стирания предыдущего фона - PullRequest
0 голосов
/ 04 января 2012

Я пытаюсь динамически построить несколько точек на моем пользовательском представлении, используя функции Quartz, чтобы я получил полный график.Я занимаюсь рисованием линий внутри метода drawRect в Custom View, где я получаю текущий контекст и рисую линии.Но они стираются, когда я пытаюсь нарисовать новую линию.Я хочу, чтобы эти линии были также видны вместе с новыми нарисованными.Пожалуйста, дайте мне знать, как это сделать.Я не могу хранить все точки вместе и рисовать в конце.Я хочу постоянно обновлять мой взгляд.Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 05 января 2012

Добавьте метод к вашему пользовательскому виду:

- (BOOL) isOpaque { return YES; }

Это предотвратит рисование любых видов позади вас, включая фон.нужно перерисовать все так или иначе.Более подходящим решением было бы использовать закадровое изображение для рисования.

0 голосов
/ 05 января 2012

Вы можете использовать CALayers: добавлять новый дочерний слой в корень каждый раз, когда у вас появляются новые данные, и рисовать в этом слое. Ваш код для рисования может остаться прежним: вам просто нужно вставить код для создания и использования слоев, что на самом деле довольно просто.
Смотри: http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/CoreAnimation_guide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40004514

...