我正在以编程方式生成几个 UIButton,然后使用块动画为它们设置动画。我可以通过实现此答案中的代码来确定触摸了哪个按钮(如下所示)。
我现在的问题是图像可以重叠,所以当在给定的触摸位置有超过 1 个视图时,我在 touchesBegan 中的代码会拉出错误的按钮(即,获取我正在触摸的可见按钮下方的图像)。
我想使用 [touch view] 与屏幕上的 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;
}
*/
}
}
所以我的问题是如何确定哪些重叠图像高于其他图像?