プログラムでいくつかの UIButton を生成し、ブロック アニメーションでそれらをアニメーション化しています。この回答のコードを実装することで、どのボタンが押されたかを判断できます(以下に示します)。
私の問題は、画像が重なる可能性があることです。そのため、指定されたタッチ位置に複数のビューがある場合、touchesBegan のコードが間違ったボタンを引き出します (つまり、タッチしている可視ボタンの下の画像を取得します)。
[タッチ ビュー] を使用して、画面上の UIButtons と比較したかった:
if (myButton==[touch view]) { ...
しかし、その比較は常に失敗します。
私のタッチが始まりました:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
CGPoint touchLocation = [touch locationInView:self.view];
for (UIButton *brain in activeBrains) {
//Works, but only when buttons do not overlap
if ([brain.layer.presentationLayer hitTest:touchLocation]) {
[self brainExplodes:brain];
break;
}
/* Comparison always fails
if (brain == [touch view]) {
[self brainExplodes:brain];
break;
}
*/
}
}
だから私の質問は、重なり合っている画像のどれが他の画像の上にあるかをどのように判断できますか?