我有两个观点
顶视图完全覆盖底部视图,但由于顶视图具有透明区域,因此仍可以看到底视图.
但是,由于topview阻止它,我无法再检测到底部视图上的按钮点击,我该怎么办?
无论如何让顶视图将触摸传递到底部视图?
我自己的问题的解决方案,希望对某人有所帮助。
在前视图中,聆听touchesEnded:withEvent代表的声音。
当此委托触发时,您就知道用户正在触摸前视图。
接下来需要检查手指位置是否触及底部视图中的特殊区域。
要做的是:
1)将点转换为相对于底视图:
UITouch *touch = [touches anyObject];
CGPoint touchPointInLowerView = [touch locationInView:self.lowerViewController.view];
BOOL isLowerButtonClicked = [self.lowerViewController isFingerOnYourButton:touchPointInLowerView];
if(isLowerButtonClicked)
{
// lower button clicked
}
Run Code Online (Sandbox Code Playgroud)
2) 在下视图中
- (BOOL) isFingerOnYourButton:(CGPoint)point
{
return CGRectContainsPoint(self.aButton.frame, point);
}
Run Code Online (Sandbox Code Playgroud)
瞧。通过这种方式,我们可以检测底部视图中的点击,即使它被顶部的另一个交互式视图阻挡。
| 归档时间: |
|
| 查看次数: |
3050 次 |
| 最近记录: |