gpt4 book ai didi

ios - 在 Swift 中以编程方式启动手势识别器?

转载 作者:搜寻专家 更新时间:2023-10-31 19:38:03 24 4
gpt4 key购买 nike

我正在尝试确定是否有以编程方式设置手势识别器状态的方法,以强制它在实际检测到用户输入之前开始。

例如,我在检测到长按时向图像添加平移手势识别器,就像这样;

let longPressRecognizer = UILongPressGestureRecognizer(target: self, action: "longPressed:")
myImage.addGestureRecognizer(longPressRecognizer)

func longPressed(sender: UILongPressGestureRecognizer) {

let mainWidth = UIScreen.mainScreen().bounds.width
let mainHeight = UIScreen.mainScreen().bounds.height

let myView: UIView(frame: CGRect(x: 0, y: 0, width: mainWidth, height: mainHeight)

let gestureRecognizer = UIPanGestureRecognizer(target: self, action: "handlePan:")
myView.addGestureRecognizer(gestureRecognizer)

self.view.addSubview(myView)

}

handlePan() 函数中,我能够确定平移何时开始和结束;

func handlePan(gesture: UIPanGestureRecognizer) {

if gesture!.state == UIGestureRecognizerState.Began {
print("Started pan")
}

if gesture!.state == UIGestureRecognizerState.Ended {
print("Ended pan")
}

}

我的问题是,要检测手势何时开始,用户必须 (1) 长按图像,(2) 松开手指,(3) 按住并开始平移。理想情况下,我想让用户 (1) 长按图像,(2) 开始平移。

为了实现这一点,我想我需要想出一种方法来“欺骗”事物相信平移手势已经开始。

注意:在实践中,比这里介绍的要复杂得多,这就是为什么我需要添加一个带有平移手势的 subview ,而不是直接将平移手势添加到图像。

最佳答案

你想要做的是预先添加两个手势识别,将它们的委托(delegate)设置到你的类中,允许它们同时识别(使用下面的方法),并且只在长按成功时使用来自平移的数据认可。

func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer,
shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return true
}

关于ios - 在 Swift 中以编程方式启动手势识别器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37279412/

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