我基于手指移动在视图上绘制了几个UIBezierPath.
每次触摸循环 – 开始/移动/结束 – 完成后,我存储点并创建存储在名为bezierArray的数组中的UIBezierPath.我有另一个名为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.我希望有一个bezier可以被绘制并留在那里而不需要每次都重绘.我错过了什么?