gpt4 book ai didi

ios - 如何设置具有两条边的 UIScreenEdgePanGestureRecognizer

转载 作者:可可西里 更新时间:2023-11-01 00:54:28 25 4
gpt4 key购买 nike

我想设置一个 EdgePanGesture 以在用户从左侧或右侧滑动时更改我的 ViewController。只有一个方向,它完美地工作:

func addingEdgePanDetection() {
let edgePan = UIScreenEdgePanGestureRecognizer(target: self, action: #selector(screenEdgeSwiped))
edgePan.edges = .left
view.addGestureRecognizer(edgePan)
}

但是,正如您在 Apple 的文档中看到的那样,边缘是 UIRectEdge 类型并且它符合 de OptionSet 协议(protocol),所以

You can add these constants together to specify multiple edges at the same time.

我尝试了三种不同的想法但都没有成功:

1.- edgePan.edges = [UIRectEdge.left, UIRectEdge.right]
2.- edgePan.edges = UIRectEdge.left | UIRectEdge.right
3.- edgePan.edges = UIRectEdge(rawValue: UIRectEdge.left.rawValue | UIRectEdge.right.rawValue)

有什么想法吗?我正在寻找只有一个 gestureRecognizer 的答案。谢谢!

最佳答案

使用两个不同的 UIScreenEdgePanGestureRecognizer 以允许用户从左右方向滑动。

var screenLeftEdgeRecognizer: UIScreenEdgePanGestureRecognizer!
var screenRightEdgeRecognizer: UIScreenEdgePanGestureRecognizer!

在 ViewDidLoad 中:

screenLeftEdgeRecognizer = UIScreenEdgePanGestureRecognizer(target: self, action: #selector(rotateBall(_:)))
screenLeftEdgeRecognizer.edges = .left
view.addGestureRecognizer(screenLeftEdgeRecognizer)

screenRightEdgeRecognizer = UIScreenEdgePanGestureRecognizer(target: self, action: #selector(rotateBall(_:)))
screenRightEdgeRecognizer.edges = .right
view.addGestureRecognizer(screenRightEdgeRecognizer)

练习:

我已经尝试过您之前在左、右、上、下尝试过的所有情况,例如 screenRightEdgeRecognizer.edgePan.edges = .all 等。但即使是未调用目标操作方法。

关于ios - 如何设置具有两条边的 UIScreenEdgePanGestureRecognizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53087082/

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