現在、タッチ イベントによって、タッチが発生した UIView が表示されることがわかります。しかし、円などの長方形以外の形状のタッチを検出する必要がある場合はどうでしょう。どうすればそのようなことをすることができますか?
基本的に、ユーザーが目に見えない円形の領域内のどこかに触れた場合にのみ、何かをしたいと考えています。
TIAさん、どんな助けや指示も大歓迎です!
現在、タッチ イベントによって、タッチが発生した UIView が表示されることがわかります。しかし、円などの長方形以外の形状のタッチを検出する必要がある場合はどうでしょう。どうすればそのようなことをすることができますか?
基本的に、ユーザーが目に見えない円形の領域内のどこかに触れた場合にのみ、何かをしたいと考えています。
TIAさん、どんな助けや指示も大歓迎です!
あなたはそうするでしょう。「locationInView」は、指定されたビューに対するタッチの座標を返すため、ビューの左上隅をタッチすると、そのビューが画面上のどこにあるかに関係なく (0,0) が返されることに注意してください。
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
// gets the coordinats of the touch with respect to the specified view.
CGPoint touchPoint = [touch locationInView:self];
// test the coordinates however you wish,
...
}
球に対してテストするには、タッチ ポイントから球の中心までの距離を計算し、これが球の半径よりも小さいかどうかを確認します。