Swift:UIPanGestureRecognizer 反向滑动错误

标签 swift

我创建了一个UIPanGestureRecognizer,但问题是当我将 View 向右滑动时, View 会向左移动。

当我向左滑动 View 时,它会向右滑动。为什么?

let panGesture = UIPanGestureRecognizer(target: self, action: #selector(detectPan(recognizer:)))
panGesture.delaysTouchesBegan = false
panGesture.delaysTouchesEnded = false
separatorView.addGestureRecognizer(panGesture)

和我的功能:

@objc func detectPan(recognizer: UIPanGestureRecognizer) {
    switch recognizer.state {
    case .began:
        self.startingConstant = self.centerConstraint.constant
    case .changed:
        let translation = recognizer.translation(in: self.view)
        self.centerConstraint.constant = self.startingConstant + translation.x
    default:
        break
    }
}

最佳答案

我没有靠近 XCode 来测试这个,但我认为你正在反向进行数学计算:

self.centerConstraint.constant = self.startingConstant + translation.x

应该是:

self.centerConstraint.constant = self.startingConstant - translation.x

关于Swift:UIPanGestureRecognizer 反向滑动错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50976846/

相关文章:

ios - 键入文本时动态更改单元格的高度,并重新加载包含的表格 View 以调整大小

ios - Swift 在不知道类型的情况下转换泛型

objective-c - 在 Objective C 中使用带有重载方法的 Swift 类

ios - 如何获取当前 CLLocation 或 CLPlacemark 的 USA Region 和 Division?

swift - 使用 stackview 使 UITableView 下拉

Swift 4 以编程方式设置自定义字体

ios - 如何更改 UIScrollView 行为以在 > 0 处开始滚动?

ios - Swift 自定义单元格以适合屏幕宽度

ios - 在 ViewModel 中格式化 UITableViewCell 日期

ios - 如何在 Swift 中模拟 CLLocationManager