重複の可能性:
ポリゴン内のCGPointかどうかを検出します
からの一連のタッチの座標がありUIEvent
ます。定義できる特定の形状(ポリゴン)に含まれているかどうかを確認する方法はありますか?
私はJavaの経験があり、polygon
クラスを使用してcontains(int x, int y)
メソッドを呼び出します。Cocoa Touchでこれを行う同様の方法はありますか?
重複の可能性:
ポリゴン内のCGPointかどうかを検出します
からの一連のタッチの座標がありUIEvent
ます。定義できる特定の形状(ポリゴン)に含まれているかどうかを確認する方法はありますか?
私はJavaの経験があり、polygon
クラスを使用してcontains(int x, int y)
メソッドを呼び出します。Cocoa Touchでこれを行う同様の方法はありますか?
ポリゴンを として定義するとCGPath
、次のように使用CGPathContainsPoint()
できます ... アプリケーションのコンセプトについて詳しく教えてください。
編集:
また、より高いレベルUIBezierPath
および/またはNSBezierPath
..これらのオブジェクトの両方に-containsPoint
メソッドがあります。
使ってみてCGRectContainsPoint(CGRect rect, CGPoint point)
ここを参照してください: https://developer.apple.com/library/mac/#documentation/graphicsimaging/reference/CGGeometry/Reference/reference.html
また
たぶん、三角形などの内部でのみタッチを検出したいなど、何か変わったことをしているのかもしれません。その場合は、これを無視できます。ただし、iOS は初めてなので、UIControl
ターゲットとアクションのペアを持つサブクラスまたはUIGestureRecognizer
.
コード例は次のとおりです。
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
後でtarget
-- おそらくビュー コントローラーで、次のメソッドを実装します。
- (void)buttonPressed:(id)sender
{
}
ジェスチャ レコグナイザを使用する場合は、ジェスチャ レコグナイザを に追加し、 の場合とUIView
同様にUIControl
、ターゲットとアクションのペアを追加します。
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewTapped:)];
[self.view addGestureRecognizer:tapRecognizer];
- (void)viewTapped:(UIGestureRecognizer *)recognizer
{
}
これらは、基本的なユーザー操作の典型的なアプローチです。& company を使用するよりもこれらを使用すると、はるかに簡単に時間を過ごすことができますtouchesBegan
が、それらが必要なものである場合は、他の回答者がカバーしています.