Ios 将触摸从UIButton的子视图传递回UIButton

Ios 将触摸从UIButton的子视图传递回UIButton,ios,objective-c,uibutton,Ios,Objective C,Uibutton,假设我有一个名为Cake的UIView蛋糕有一个手势识别器 现在,假设我有一个名为Bob的ui按钮 我将蛋糕作为子视图添加到Bob: [Bob addSubview: Cake]; 现在,Bob,即ui按钮,不再响应内部的控制事件触动 我希望蛋糕能够处理触摸,而鲍勃同时处理触摸。目前,Cake可以处理触摸,但是Bob懒散地什么也不做 我尝试过的事情: 将蛋糕的手势识别器的cancelsTouchesInView设置为NO 为蛋糕的手势识别器执行UIgestureRecognitizer委托,

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

现在,假设我有一个名为Bob
ui按钮

我将蛋糕作为子视图添加到Bob

[Bob addSubview: Cake];
现在,Bob,即
ui按钮
,不再响应内部的控制事件触动

我希望蛋糕能够处理触摸,而鲍勃同时处理触摸。目前,Cake可以处理触摸,但是Bob懒散地什么也不做

我尝试过的事情:

  • 将蛋糕的手势识别器的
    cancelsTouchesInView
    设置为
    NO
  • 蛋糕的手势识别器执行
    UIgestureRecognitizer委托
    ,并始终为
    返回
    ,应使用gestureRecognitizer方法同时识别
  • 子类化
    UIgestureRecognitor
    并调用
    [self.view.nextResponder TouchsSomething:TouchwithEvent:event]touchesSomething
    touchessbegind
    touchesend
    等)方法中的code>(我还确认下一个响应者实际上是处理控制事件的
    ui按钮
  • 不使用手势识别器,而只是使用
    UIView
    Cake)中的
    touchesSomething
    方法+通过
    touchesSomething
    调用所有
    super
    self.superview
    self.nextResponder

有人知道一个好方法来实现这一点吗?

我的建议如下:

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

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

- (IBAction)pressButton:(UIButton *)sender forEvent:(UIEvent *)event 
在动作内检查压力机是否在子视图内

- (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
    }
} 
我想做的,蛋糕,是一个视图,可以作为子视图放置到任何按钮中,而无需额外设置-这是一个装饰性的视图。蛋糕的手势识别器是用来制作一个小动画的


那你就大错特错了。拿走蛋糕的手势识别器;你不需要它。你是想让蛋糕对鲍勃的压力做出反应。但这很容易;鲍勃是一个按钮!按钮已经告诉您正在发生的一切-它正在高亮显示等等。因此,您只需要一个UIButton子类,它告诉Cake何时进行动画制作。

您想调用一个方法,当按下cake时,如果另外按下bob,还有另一种方法吗?我想向UIButton添加一个子视图,该子视图具有手势识别器,并且不会干扰UIButton的常规功能。啊,好的!该按钮使用动作?是的,该按钮应以控制事件
UIControlEventTouchUpInside
的动作响应。这对我不起作用。我需要我的子视图能够放入任意UIButton中。问题是我正在制作的“蛋糕”是我希望能够作为子视图放入任意UIButton中的东西,而不仅仅是UIButton。这个按钮正是阻碍我前进的原因。如果你不提出你真正想知道答案的问题,我如何才能明智地提供帮助?你们不断地展示额外的规格,就像扑克中的牌。告诉我你到底想干什么!对不起,我以为我说的够多了。我确实问了我想要答案的问题,但我想要的是一个直接的答案,而不是一个变通办法,我想我应该具体说明一下。我正在构建一个UIView子类,我希望它能够作为任何视图中的子视图。此子视图的目的是基于用户触摸视图的位置显示动画。这适用于启用用户交互的按钮或其他视图(例如,可选单元格)。关键是当用户触摸可点击的东西时给他们反馈。在我看来,你问了一个关于做某事的最佳方式的非常具体的假设的问题,而不是问如何做那件事。我认为我的问题在这方面是非常清楚的,但我会在将来尝试更清楚。