нарисовать линию / точку на существующем UIView без drawRect? - PullRequest
2 голосов
/ 26 октября 2010

Я создал линейный график. Теперь мне нужно отобразить точку на этом графике, когда я нажимаю на экран. Какой будет лучший метод? Нужно ли снова вызывать метод drawRect, нарисовать весь график с отмеченной точкой?

Я думаю о чем-то вроде прозрачного слоя над графиком UIView. Могу ли я создать еще один прозрачный UIView и поместить его в положение моего графика?

Ответы [ 2 ]

1 голос
/ 26 октября 2010

Поскольку все рисование выполняется в представлении drawRect:, вы можете оптимизировать чертеж только своей диаграммы, чтобы можно было обновить только его часть и использовать setNeedsDisplayInRect: (минуя область, где должен находиться маркер).

Или вы создаете другой подкласс UIView, который расположен поверх вашего графика и который делает только рисование маркеров на прозрачном фоне.Вероятно, проще и быстрее реализовать.Это также будет иметь еще одно преимущество:

Если вы сделаете этот вид настолько большим, как ограничивающий прямоугольник маркера, вы также можете легко анимировать его, например, плавно увеличивать и уменьшать его.Или немного поверните его (чтобы увидеть эффект, который я имею в виду, выберите меню «Справка» в Mac OS X, введите что-то в поле поиска, например «a»), и отметьте, что маркер рядом с элементом меню немного переместилсявокруг пятна).

0 голосов
/ 26 октября 2010

Вы можете нарисовать часть своего вида, используя setNeedsDisplayInRect:.

...