現在我在視圖的drawRect
中使用UIBezierPath和moveToPoint
/addLineToPoint
。 這個相同的視圖從viewController接收到touchesMoved
。它修改時,我繪製多邊形所使用,像這樣的posx
和posy
變量:如何創建超過1000條邊/線的可移動和可調整大小的多邊形?
[path addLineToPoint:CGPointMake([p.getx floatValue]+posx, [p.gety floatValue]+posy)]
不幸的是,性能是可怕的,多邊形離開時,我將它移動軌跡。
什麼是實現我想要做的最好的方法?
編輯:drawRect。 polys
是一個帶有poly
對象的NSMutableArray。每個poly都是一個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];
}
你可以發佈多一點的代碼?整個'drawRect'方法? –
是的,我可以。剛編輯它。 – HSNN