gpt4 book ai didi

ios - UISwipeGestureRecognizer 工作异常

转载 作者:行者123 更新时间:2023-11-29 00:20:57 25 4
gpt4 key购买 nike

在我的 UiView 中,我有一个名为“container”的 subView,如果用户向上或向下滑动,它应该执行旋转动画。基本上它就像一个轮子,如果用户向下滑动轮子,则向下滑动一定程度,同时向上滑动执行相反的操作。

这是我的 viewDidLoad 代码:

override func viewDidLoad() {
super.viewDidLoad()

//Swipe Gesture Recognizers Setup
let swipeUp = UISwipeGestureRecognizer(target: self, action: #selector(self.swipeUp(_:)))
swipeUp.direction = .up
swipeUp.delegate = self as? UIGestureRecognizerDelegate

let swipeDown = UISwipeGestureRecognizer(target: self, action: #selector(self.swipeDown(_:)))
swipeDown.direction = .down
swipeDown.delegate = self as? UIGestureRecognizerDelegate

view.addGestureRecognizer(swipeDown)
view.addGestureRecognizer(swipeUp)
}

这些是向上或向下滑动的 2 个功能:

func swipeUp(_ sender: UISwipeGestureRecognizer) {
print("Swiped Up")
UIView.animate(withDuration: 1) {
self.borderContainer.transform = CGAffineTransform(rotationAngle: 0)
}
}

func swipeDown(_ sender: UISwipeGestureRecognizer) {
print("Swiped Down")
UIView.animate(withDuration: 1) {
self.borderContainer.transform = CGAffineTransform(rotationAngle: 45)
}}

一切都很好,每次执行操作时控制台都会打印滑动方向,但是(是的,有一个但是!)它在每个方向仅调用一次相关函数。这意味着如果我向下滑动,那么我只能向上滑动...

我希望它能够在用户需要的任何时候继续向下或向上滑动...

我做错了什么?我读到有关 UIGestureRecogniser 与 View 一起旋转,因此它不再可达,但我应用了解决方案将手势识别器应用到 superView 而不是我正在动画的 View ... Why does the Swipe Gesture Recognizer only work once?

非常感谢任何帮助!

最佳答案

仔细查看您的向下滑动功能。每次向下滑动时都设置相同的值。

如果你想每次都改变它,你需要将当前角度 45度。否则它将继续处于与以前相同的位置。

尝试使用 borderContainer.transform.rotated(by: 45)

关于ios - UISwipeGestureRecognizer 工作异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44239857/

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