ios – 在视图中绘制许多UIBezierPath

前端之家收集整理的这篇文章主要介绍了ios – 在视图中绘制许多UIBezierPath前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我基于手指移动在视图上绘制了几个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可以被绘制并留在那里而不需要每次都重绘.我错过了什么?

解决方法

确保你注意传入-drawRect:的矩形.如果您的代码在每次调用-drawRect:时都采用简单的方法并重新绘制整个视图,那么至少在某些时候,您可能会进行远远超过必要的绘制.

猜你在找的iOS相关文章