gpt4 book ai didi

ios - 将触摸从 UIButton 的 subview 传递回 UIButton

转载 作者:行者123 更新时间:2023-11-28 21:37:51 25 4
gpt4 key购买 nike

假设我有一个 UIView名为蛋糕Cake 有一个手势识别器。

现在,假设我有一个 UIButton名为鲍勃

我将 Cake 添加为 Bob 的 subview :

[Bob addSubview: Cake];

现在,BobUIButton ,不再响应里面的控件事件touch up。

我希望 Cake 能够处理触摸,同时 Bob 也能处理触摸。目前,Cake 可以处理触摸,但 Bob 懒洋洋地什么都不做。

我尝试过的事情:

  • 设置cancelsTouchesInView Cake 的手势识别器到 NO
  • 实现 UIGestureRecognizerdelegate Cake 的手势识别器总是返回 YES对于 shouldRecognizeSimultaneouslyWithGestureRecognizer方法
  • 子类化 UIGestureRecognizer并调用 [self.view.nextResponder touchesSomething:touches withEvent:event];在每个touchesSomething ( touchesBegantouchesEnded 等)方法(我还确认下一个响应者实际上是应该处理控制事件的 UIButton)
  • 不使用手势识别器,而是使用 touchesSomething UIView 中的方法(蛋糕) + 穿过 touchesSomething调用所有 super , self.superview , self.nextResponder等等。

有谁知道完成这项工作的好方法吗?

最佳答案

我的建议如下:

确保将 subview 的 UserInteraction 设置为 false!现在应该正确调用按钮的操作。

现在将事件参数添加到操作中:

- (IBAction)pressButton:(UIButton *)sender forEvent:(UIEvent *)event 

在 action 中检查 press 是否在 subview 中

- (IBAction)pressButton:(UIButton *)sender forEvent:(UIEvent *)event
// get location
UITouch *touch = [[event allTouches] anyObject];
CGPoint location = [touch locationInView:touch.view];

// check position
if (CGRectContainsPoint(self.subview.frame, location) {
// call selector like the gesture recognizer here
}
}

关于ios - 将触摸从 UIButton 的 subview 传递回 UIButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33248643/

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