2011-06-14 8 views
0

特定のタッチ位置にあるオブジェクトの数を確認できますか? すべてのオブジェクトに番号を付けてタグ付けしましたが、動作する方法は考えられませんでした。タッチ位置にあるオブジェクトの数を確認できますか?

基本的には、私はuiimageviewをタッチポイントに追加しますが、すでに他のuiimageviewがある場合は何もしません。

ありがとうございます!

+0

私は自分自身で解決策を考え出しました...しかし、それほどエレガントではありません。ビューに追加されたオブジェクトのすべての位置を配列に追加し、これに対して新しいタッチ位置を確認します。私は多くのオブジェクトを持っていると、おそらく波打つようになるでしょう...誰かが良いアイデアを持っているなら、私に知らせてください。ありがとう –

答えて

0

あなたは良い考えを持っています。ビューに追加するすべてのオブジェクトは、すでに[myview subviews]という配列に保持されています。 [myview viewWithTag: kFirstViewTag]で簡単にアクセスできるので、タグを付けることをお勧めしました。

2番目の部分に答えるには、タッチ位置を確認するときに、タッチ位置がサブビューと交差していないかどうかを確認します。例えば

for (UIView* view in [myView subviews]) { 
    if (CGRectContainsPoint([view frame], touchPoint) { 
     //do something 
    } 
} 

することができますので、私は次のように、forループでkFirstViewTagからkLastViewTagのタグで制限されたものにだけサイクル、あなたはおそらく、すべてのサブビューを谷に行く必要はありませんと仮定することができます:

for (int i = kFirstViewTag; i <= kLastViewTag; i++) { 
    UIView *view = [myView viewWithTag: i]; 
    if (CGRectContainsPoint([view frame], touchPoint) { 
     //do something 
    } 
} 
関連する問題