UIButton即使在整个区域都没有触及

时间:2014-12-29 08:44:28

标签: ios iphone uibutton touch-up-inside

我在UIBUtton中有UICollectionViewCell,如图所示。我在xib中设置了 touchUpInside 操作。我设置按钮的背景图像是粉红色和标签黄色。 UIButton位于标签的顶部。现在问题是UIButton在粉红色区域没有触摸事件时它只会在橙色区域上获得触摸事件。为什么会这样。

- (IBAction)checkButtonTap:(id)sender event:(id)event
{
    DLog(@"%s",__func__);
}

enter image description here


O隐藏的视图与按钮重叠,因为触摸事件没有到达按钮。

3 个答案:

答案 0 :(得分:1)

为了确保我理解您的问题,您的UICollectionView为黄色,UIbutton为粉红色,是正确的吗?

如果是这样,您似乎想要以黄色截取按钮的超级视图外的touchUpInside事件。您可以查看处理问题类型的this answer

即使您最终找到问题的解决方案,澄清我的答案,如果您想与不在其超级视图框架内的UIButton进行交互,您可能需要实现方法{{超级视图的1}}(此处为- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event):

UICollectionViewCell

(感谢Noam!)

答案 1 :(得分:0)

UITapGestureRecognizer * tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageTapped :)];     [buttonname addGestureRecognizer:tapGesture];     buttonname.userInteractionEnabled = YES;

  • (IBAction)imageTapped:(UITapGestureRecognizer *)gestureRecognizer { if(gestureRecognizer.state == UIGestureRecognizerStateRecognized){     [buttonname becomeFirstResponder]; } }

答案 2 :(得分:0)

对不起,由于触摸事件没有到达按钮,隐藏的视图与按钮重叠。