gpt4 book ai didi

ios - UIPanGestureRecogniser 无法正常工作

转载 作者:行者123 更新时间:2023-11-28 08:53:42 24 4
gpt4 key购买 nike

我有这个函数来处理 View 的拖动:+

func handlePan(recognizer:UIPanGestureRecognizer) {
let translation = recognizer.translationInView(self.view)



let newCenter = CGPointMake(self.view.bounds.size.width / 2,
recognizer.view!.center.y + translation.y)

print("the translation x:\(translation.x) & y:\(newCenter.y)")

if (newCenter.y >= 397 && newCenter.y <= 632) {
recognizer.view!.center = newCenter


recognizer.setTranslation(CGPointZero, inView: self.view)
}


}

位置是对的。然而,我需要移动的 View 在我拖动时经常被阻塞,所以我需要停止并重新开始拖动它。

我该如何解决这个问题?

编辑:我的代码现在看起来像这样,但我仍然遇到了问题:

func handlePan(recognizer:UIPanGestureRecognizer) {
let translation = recognizer.translationInView(self.view)


switch recognizer.state {
case .Ended:fallthrough
case .Changed:

let newCenter = CGPointMake(self.view.bounds.size.width / 2,
recognizer.view!.center.y + translation.y)

print("the translation x:\(translation.x) & y:\(newCenter.y)")

if (newCenter.y >= 397 && newCenter.y <= 632) {
recognizer.view!.center = newCenter
recognizer.setTranslation(CGPointZero, inView: self.view)}

default : break }


}

最佳答案

因为我不知道您代码的其他部分,所以这部分假设您的代码可能和应该是什么样子:

class ViewController: UIViewController {

// Gesture function
func panAround(recognizer: UIPanGestureRecognizer) {
switch recognizer.state {
...
case .Changed:
let translation = recognizer.translationInView(yourView)
let newCenter = CGPointMake(self.view.bounds.size.width / 2,
recognizer.view!.center.y + translation.y)

print("the translation x:\(translation.x) & y:\(newCenter.y)")

if (newCenter.y >= 397 && newCenter.y <= 632) {
recognizer.view!.center = newCenter

// Updating the UI whenever there is a "small change"
updateUI()

recognizer.setTranslation(CGPointZero, inView: self.view)
}
...
}
}

private func updateUI() {
yourView.setNeedsDisplay()
}

注意:上面的代码不能通过复制和粘贴直接运行,我只是指出您可以进行调整的地方。

关于ios - UIPanGestureRecogniser 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33636889/

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