现在我正在使用 UIBezierPath 和moveToPoint
/addLineToPoint
在视图的drawRect
. 这个相同的视图touchesMoved
从 viewController 接收。它修改了我绘制多边形时使用的posx
和posy
变量,如下所示:
[path addLineToPoint:CGPointMake([p.getx floatValue]+posx, [p.gety floatValue]+posy)]
不幸的是,性能很糟糕,每当我移动它时,多边形都会留下痕迹。
实现我想要做的事情的最佳方式是什么?
编辑:drawRect。polys
是一个带有poly
对象的 NSMutableArray。每个多边形是一个 x/y 点。
- (void)drawRect:(CGRect)rect{
UIBezierPath* path;
UIColor* fillColor;
path = [UIBezierPath bezierPath];
for (int i = 0; i < [polys count]; i++){
poly *p = [polys objectAtIndex:i];
if (i == 0){
[path moveToPoint:CGPointMake([p.getx floatValue]+posx, [p.gety floatValue]+posy)];
}else{
[path addLineToPoint:CGPointMake([p.getx floatValue]+posx, [p.gety floatValue]+posy)];
fillColor = [UIColor blueColor]; // plan to use a random color here
}
}
[path closePath];
[fillColor setFill];
[path fill];
}