Я рисую несколько UIBezierPath
s на виде, основанном на движениях пальцев.
Каждый раз, когда цикл касаний - Begin / Moved / Ended - завершается, я сохраняю точки и создаю 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
с несколькими различными подпутями. Я хотел бы, чтобы один Безье мог быть нарисован и оставлен там без необходимости перерисовки каждый раз. Чего мне не хватает?