在使用CoreGraphics绘制的形状内抓住触摸 - 目标C.

时间:2013-05-30 07:22:00

标签: ios objective-c xcode events core-graphics

我在Core Graphics方法中使用-(void) drawRect绘制形状。如何检测该形状内的触摸?

为了简单起见,当我触摸UIView时,我应该(至少)能够检测到触摸是否在绘图内。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

使用UIBezierPath定义并绘制您的形状,然后您可以使用:

- (BOOL)containsPoint:(CGPoint)point

答案 1 :(得分:0)

创建触摸事件:

- (IBAction)largeButtonDragInside:(UIButton *)sender
{
    [_myButton addTarget:self action:@selector(draging:withEvent:) forControlEvents: UIControlEventTouchDragInside];    
}

- (void)draging:(UIControl *)c withEvent:ev {
    UITouch *touch = [[ev allTouches] anyObject];
    currentTouchPoint = [touch locationInView:_myButton];
    NSLog(@"Draging x: %f y: %f", currentTouchPoint.x, currentTouchPoint.y);
}

根据currentTouchPoint x& amp;更新按钮的位置。收率