ONLongPressGesture to Touches Moved in subview

Posted

技术标签:

【中文标题】ONLongPressGesture to Touches Moved in subview【英文标题】:UILongPressGesture to Touches Moved in subview 【发布时间】:2013-08-16 13:48:08 【问题描述】:

我有一个UIViewController 并添加了一个UILongPressGestureRecognizer,当它被识别时会在顶部添加一个覆盖UIViewController 的子视图,并将印刷机的坐标传递给子视图并添加印刷机所在的图像。

我现在需要做的是移动用户拇指所在的子视图。我已经在UIView 中实现了touchesMoved,但是直到您移除手势并按下并重新开始后才会注册?

如何在添加 UIView 后立即开始 touchesBegan 而无需删除并重新开始?

谢谢 -JM

【问题讨论】:

【参考方案1】:

为什么不继续使用 UILongPressGesture?

    - (IBAction)longPressGestureStateChanged:(UILongPressGestureRecognizer *)sender 
        switch (sender.state) 
            case UIGestureRecognizerStatePossible:
            case UIGestureRecognizerStateBegan: 
            /* PUT YOUR IMAGE HERE */
            break;
        
        case UIGestureRecognizerStateChanged: 
            /* MOVE YOUR IMAGE HERE */
            self.myImageView.center = [sender locationInView:self.view /* or any of your subviews */];
            break;
        
        case UIGestureRecognizerStateCancelled:
        case UIGestureRecognizerStateFailed:
        case UIGestureRecognizerStateEnded: 
            /* REMOVE OR PROCESS END OF THIS TOUCH GESTURE */
            break;
    

【讨论】:

以上是关于ONLongPressGesture to Touches Moved in subview的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI 使用 onTapGesture 和 onLongPressGesture 处理按钮/视图以及释放操作

onTapGesture 和 onLongPressGesture 没有响应

如何以编程方式发送 ONLongPressGesture?

在swiftUI中捕获onLongPressGesture的touchDown位置?

onLongPressGesture 使列表项在 SwiftUI 中不可滚动

微信小程序用setData修改数组或对象中的一个属性值