Ios 如何设置具有两条边的UIScreenedGepangestureRecognitor
我想设置EdgePanGesture,以便在用户从左或右方向滑动时更改我的ViewController。 只有一个方向,它工作得非常完美:Ios 如何设置具有两条边的UIScreenedGepangestureRecognitor,ios,swift,swipe,gesture,edges,Ios,Swift,Swipe,Gesture,Edges,我想设置EdgePanGesture,以便在用户从左或右方向滑动时更改我的ViewController。 只有一个方向,它工作得非常完美: func addingEdgePanDetection() { let edgePan = UIScreenEdgePanGestureRecognizer(target: self, action: #selector(screenEdgeSwiped)) edgePan.edges = .left view.addGestureR
func addingEdgePanDetection() {
let edgePan = UIScreenEdgePanGestureRecognizer(target: self, action: #selector(screenEdgeSwiped))
edgePan.edges = .left
view.addGestureRecognizer(edgePan)
}
但是,正如您在苹果的文档中所读到的,Edge是UIDirectEdge类型,它符合de OptionSet协议
可以将这些常量添加在一起,以在同一位置指定多条边
同时
我尝试了三种不同的想法,但都没有成功:
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)
有什么想法吗?我正在寻找一个只有一个手势识别器的答案。谢谢 使用两种不同的
UIScreenedGepangestureRecognitor
s,允许用户从左右方向刷卡
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
等,但都没有成功,即使目标动作方法没有被调用。这里的“不成功”是什么意思?这意味着手势没有朝任何方向工作!谢谢你的回答。你是对的,但我只想在手势识别器上创建两个方向。也许这是不可能的@这是不可能的。尽管属性的名称是复数,尽管uirectredge
是一个OptionSet
,uiscreenedgepangestureerecognizer
仅适用于一条边,因此您必须创建两个手势识别器。如果需要,两者都可以使用相同的选择器。