繁体   English   中英

如何在禁用用户交互的情况下为子视图实现longPressGestureRecognizer?

[英]How implement longPressGestureRecognizer for subview with disabled user interaction?

我需要这样的用户界面:

在此处输入图片说明

具有2个按钮(黄色和红色)和背景视图(灰色),将具有下一个行为:-当我按下按钮时将其突出显示; -当我释放按钮时执行; -当我从任何其他视图中按下并移入按钮时,按钮变为突出显示(例如:按下灰色矩形并释放红色,或者按下黄色并释放红色); -支持按钮手势(例如长按和滑动)

因此,为解决我的问题,我只能找到另一种方法:重新定义我的GrayView触摸方法: touchesCancelledtouchesMovedtouchesBegan ,然后检查当前触摸位置是否属于某个矩形-我执行适当的操作。 但是对于此解决方案,我必须使我的按钮具有userInteractionEnabled = false ,这意味着它们不再支持手势或其他事件。 因此,如果我要使用什么来支持它,则我必须自己实施,而不是要做什么。

那么我该如何解决呢?

如果我正确理解,也可以将手势识别器添加到灰色视图。 当手势识别器触发时,找到触摸区域中的彩色视图:

- (void)tapAction:(UITapGestureRecognizer*)recognizer{
    if(recognizer.state == UIGestureRecognizerStateEnded){
        CGPoint position = [recognizer locationInView:grayView];
        if(CGRectContainsPoint(redView.frame, position) {
            ...
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM