タッチ ポイント (touchesBegan) が非表示の UIBezierPath にあるかどうかを知るにはどうすればよいですか?
質問する
5576 次
1 に答える
10
[bezierPath containsPoint:touchPoint];
タッチポイントがbezierPathsポイントと同じ座標系にあり、ポイントが同じコンテキスト内、つまり両方が画面空間にあることを確認してください。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint touchPoint = [touch locationInView:self.view];
if ([self.bezierPath containsPoint:touchPoint])
{
// do stuff
}
}
注:一部のCoreGraphics図面でUIBezierPathを使用している場合は、たとえば、touchPointのy軸を反転する必要があります...
touchPoint.y = self.view.bounds.size.height --touchPoint.y;
于 2012-05-31T10:05:40.953 に答える