5

重複の可能性:
ポリゴン内のCGPointかどうかを検出します

からの一連のタッチの座標がありUIEventます。定義できる特定の形状(ポリゴン)に含まれているかどうかを確認する方法はありますか?

私はJavaの経験があり、polygonクラスを使用してcontains(int x, int y)メソッドを呼び出します。Cocoa Touchでこれを行う同様の方法はありますか?

4

3 に答える 3

3

ポリゴンを として定義するとCGPath、次のように使用CGPathContainsPoint()できます ... アプリケーションのコンセプトについて詳しく教えてください。

編集:

また、より高いレベルUIBezierPathおよび/またはNSBezierPath..これらのオブジェクトの両方に-containsPointメソッドがあります。

于 2013-01-02T04:21:56.823 に答える
2

使ってみてCGRectContainsPoint(CGRect rect, CGPoint point)

ここを参照してください: https://developer.apple.com/library/mac/#documentation/graphicsimaging/reference/CGGeometry/Reference/reference.html

また

ポリゴン内の CGPoint かどうかを検出する

于 2013-01-02T04:27:08.153 に答える
0

たぶん、三角形などの内部でのみタッチを検出したいなど、何か変わったことをしているのかもしれません。その場合は、これを無視できます。ただし、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が、それらが必要なものである場合は、他の回答者がカバーしています.

于 2013-01-02T04:37:39.183 に答える