2013-04-05 96 views
3

有人可以在這裏請示範我如何使用UIBezierpath繪製一個點。我能夠使用UIBezierpath繪製一條線,但是如果我移開手指並將其放回,然後移除畫面上的任何東西。 由於如何使用UIBezierpath在touchesEnded的屏幕上繪製一個點

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 

{

UITouch *touch = [touches anyObject]; 
CGPoint p = [touch locationInView:self]; 
[pPath moveToPoint:p]; 
[pPath stroke]; 
[self setNeedsDisplay]; 

}

- (void)drawRect:(CGRect)rect 

{

[pPath stroke]; 

}

回答

4

您的路徑不包含任何要撫摸的線段或曲線段。

試試這個:

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { 
    CGPoint p = [touches.anyObject locationInView:self]; 
    static CGFloat const kRadius = 3; 
    CGRect rect = CGRectMake(p.x - kRadius, p.y - kRadius, 2 * kRadius, 2 * kRadius); 
    pPath = [UIBezierPath bezierPathWithOvalInRect:rect]; 
    [self setNeedsDisplay]; 
} 

- (void)drawRect:(CGRect)rect { 
    [[UIColor blackColor] setFill]; 
    [pPath fill]; 
} 
+0

完美無瑕。感謝這麼多rob – newdev1 2013-04-05 23:00:09

+0

你好@Rob我可以用橢圓形開始嗎? – Ranjit 2014-01-23 09:53:42

+0

@Ranjit好的。爲什麼不?你不需要我的許可。 – 2014-01-23 16:43:14

4

這一次我用

- (空)handleTap:(UITapGestureRecognizer *)singleTap {// 在屏幕上畫點

CGPoint tapPoint = [singleTap locationInView:self]; 
[bezierPath_ moveToPoint:tapPoint]; 
[bezierPath_ addLineToPoint:tapPoint]; 

[self setNeedsDisplay]; 

}

相關問題