使用UIBezierPaths绘制100个不同位置的圆圈

时间:2014-06-05 15:10:50

标签: ios drawrect uibezierpath

我试图在UIView的drawRect函数中绘制100多个UIBezierPath圆。我正在创建UIBezierPaths并将其添加到数组中:

for (int i = 0; i < 100; i++) {

    UIBezierPath *path = [UIBezierPath bezierPath];
    [path addArcWithCenter:centerPoint radius:10 startAngle:0 endAngle:360 clockwise:YES];

    path.lineWidth = 2;
    [bezierPaths addObject:path];
}

在调用setNeedDisplay之前。然后在drawRect中迭代遍历数组

- (void)drawRect:(CGRect)rect {

       for (UIBezierPath *path in bezierPaths) {
            [path fill];
            [path stroke];
       }
    }

这看起来有点矫枉过正,有没有更好的方法呢?使用Profile我可以看到86%的MainThread用于调用drawRect中的[path stroke]。

1 个答案:

答案 0 :(得分:0)

我传递的是0度和360度,而不是放射线,它吸引了太多次。