Хорошо, у меня есть UIView
, который отображает CGPath
, который довольно широк. Его можно прокрутить в пределах UIScrollView
по горизонтали. Прямо сейчас у меня есть представление с использованием CATiledLayer
, потому что его ширина превышает 1024 пикселя.
Итак, мой вопрос: это эффективно?
- (void) drawRect:(CGRect)rect {
CGContextRef g = UIGraphicsGetCurrentContext();
CGContextAddPath(g,path);
CGContextSetStrokeColor(g,color);
CGContextDrawPath(g,kCGPathStroke);
}
По сути, я рисую весь путь каждый раз, когда рисуется плитка в слое. Кто-нибудь знает, является ли это плохой идеей, или CGContext относительно умен, только рисуя части пути, которые находятся внутри прямоугольника отсечения?
Путь в основном настроен таким образом, чтобы я мог разбить его на блоки, похожие по размеру и форме на плитки, но это потребовало бы больше работы с моей стороны, потребовало бы некоторой избыточности среди путей ( для фигур, которые пересекают границы листов), а также потребуется некоторое вычисление, чтобы найти какой путь или пути нарисовать.
Стоит ли двигаться в этом направлении, или CGPath уже рисует относительно быстро?