Я рисую несколько UIBezierPath
в представлении на основе движений пальцев.
Каждый раз, когда цикл касаний - Начало / Перемещение / Завершение - завершается, я сохраняю точки и создаю UIBezierPath
, который сохраняется в массиве с именем bezierArray
. У меня есть еще один массив под названием bezierArrayColors
, в котором хранятся цвета каждого пути.
Проблема в следующем. Класс использует drawRect
. Насколько я могу судить, каждый раз, когда drawRect
запускается, он должен рисовать все пути, которые когда-либо были созданы, и теперь приложение работает медленно.
Это мой drawRect
. . Я знаю, что это довольно неаккуратно, но я не понимаю, как это можно сделать.
- (void)drawRect:(CGRect)rect {
for (int i=0; i<[self.bezierArray count]; i++) {
UIBezierPath *aPath = (UIBezierPath*)[self.bezierArray objectAtIndex:i];
UIColor *aColor = (UIColor*)[self.bezierArrayColor objectAtIndex:i];
[aPath setLineWidth:LINE_WIDTH];
[aColor setStroke];
[aPath stroke];
}
}
Есть ли способ обвести UIBezierPath
разными цветами или, возможно, шириной, используя подпути? Я имею в виду, чтобы изменить цвет, ширину и другие свойства подпути? Это позволило бы мне использовать один UIBezierPath
с несколькими разными подпутьями. Я бы хотел, чтобы один Безье можно было нарисовать и оставить там без необходимости каждый раз перерисовывать. Что мне не хватает?