我有两种看法
- 顶 View 有一些不透明区域和一些透明区域
- 底部 View 有一些可点击的按钮。
顶 View 完全覆盖了底 View ,但是由于顶 View 有透明区域,所以仍然可以看到底 View 。
但是,由于顶部 View 阻止了它,我无法再检测到底部 View 上的按钮点击,我该怎么办?
有没有办法让顶 View 将触摸传递给底 View ?
最佳答案
我自己的问题的解决方案,希望它能帮助别人。
在前 View 中,监听 touchesEnded:withEvent
委托(delegate)。
当此委托(delegate)触发时,您知道用户正在触摸前 View 。
接下来您需要检查手指位置是否接触到 BOTTOM View 中的特殊区域。
要做的是:
1)将点转换为相对于底 View :
UITouch *touch = [touches anyObject];
CGPoint touchPointInLowerView = [touch locationInView:self.lowerViewController.view];
BOOL isLowerButtonClicked = [self.lowerViewController isFingerOnYourButton:touchPointInLowerView];
if(isLowerButtonClicked)
{
// lower button clicked
}
2)在下 View 中
- (BOOL) isFingerOnYourButton:(CGPoint)point
{
return CGRectContainsPoint(self.aButton.frame, point);
}
瞧。通过这种方式,我们可以在底部 View 中检测到点击,即使它被顶部的另一个交互式 View 阻挡。
关于objective-c - 检测触摸另一个 View 后面的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6911721/