gpt4 book ai didi

objective-c - 检测触摸另一个 View 后面的 View ?

转载 作者:太空狗 更新时间:2023-10-30 03:43:35 24 4
gpt4 key购买 nike

我有两种看法

  • 顶 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com