我正在根据手指移动在视图上绘制几个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
来绘制多个不同的子路径。我希望能够绘制一个贝塞尔曲线并将其留在那里,而无需每次都重新绘制。我错过了什么吗?