3

描画に UIBezierPath を使用しており、タッチ イベントのコードを記述して正常に動作していますが、曲線が滑らかではありません。指を動かして曲線を描くと、滑らかではありません。

- (void)drawRect:(CGRect)rect
{    
    [[UIColor redColor] setStroke];
    for (UIBezierPath *_path in pathArray) 
    [_path strokeWithBlendMode:kCGBlendModeNormal alpha:1.0];
}

#pragma mark - Touch Methods
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    myPath=[[UIBezierPath alloc]init];
    myPath.lineWidth=5;
    myPath.lineCapStyle = kCGLineCapRound;
    myPath.flatness = 0.0;   

    UITouch *mytouch=[[touches allObjects] objectAtIndex:0];
    [myPath moveToPoint:[mytouch locationInView:self]];
    [pathArray addObject:myPath];

}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{   
    UITouch *mytouch=[[touches allObjects] objectAtIndex:0];
    [myPath addLineToPoint:[mytouch locationInView:self]];

    [self setNeedsDisplay];    
}

画像はこちら

ここに画像の説明を入力

上の画像で文字 a と d を見ると、曲線が滑らかでないことがわかります。滑らかな曲線を描くにはどうすればよいですか?

4

2 に答える 2

3

この行を使用するだけです。それはあなたの問題を解決しますmyPath.miterLimit=-10;

浮動小数点値を取る必要がある場合は、値を変更します

于 2012-06-05T12:51:36.610 に答える