gpt4 book ai didi

swift - Swift 3 中的滑动手势

转载 作者:行者123 更新时间:2023-11-30 14:04:32 25 4
gpt4 key购买 nike

我试图让 UISwipeGestureRecognizer 在 Swift 3 中工作,默认的向右滑动可以正常工作,但不能上下或向左滑动。

我已经尝试过通过控制拖动 Action 来实现

@IBAction func hole(_ recognizer: UISwipeGestureRecognizer) {
if (recognizer.direction == UISwipeGestureRecognizerDirection.left)
{
print("left")
}else if recognizer.direction == .right {
print("right")
}else {
print("other")
}
}

并且,在 ViewDidLoad 中

//gesture recognisers
let swipeRight = UISwipeGestureRecognizer(target: self, action: "holeSwiped:")
swipeRight.direction = UISwipeGestureRecognizerDirection.right
self.view.addGestureRecognizer(swipeRight)

let swipeLeft = UISwipeGestureRecognizer(target: self, action: "holeSwiped:")
swipeLeft.direction = UISwipeGestureRecognizerDirection.left
self.view.addGestureRecognizer(swipeLeft)

我的方法

func holeSwiped(gesture: UISwipeGestureRecognizer)
{
if let swipeGesture = gesture as? UISwipeGestureRecognizer{
switch swipeGesture.direction {
case UISwipeGestureRecognizerDirection.right:
print("right swipe")
case UISwipeGestureRecognizerDirection.left:
print("left swipe")
default:
print("other swipe")
}
}
}

现在,除了默认的右侧滑动之外,所有滑动都不起作用。有什么想法吗?

最佳答案

第 1 步:在 viewDidLoad() 方法中添加滑动手势。

override func viewDidLoad() {
super.viewDidLoad()

let swipeLeft = UISwipeGestureRecognizer(target: self, action: #selector(handleGesture))
swipeLeft.direction = .left
self.view.addGestureRecognizer(swipeLeft)

let swipeRight = UISwipeGestureRecognizer(target: self, action: #selector(handleGesture))
swipeRight.direction = .right
self.view.addGestureRecognizer(swipeRight)

let swipeUp = UISwipeGestureRecognizer(target: self, action: #selector(handleGesture))
swipeUp.direction = .up
self.view.addGestureRecognizer(swipeUp)

let swipeDown = UISwipeGestureRecognizer(target: self, action: #selector(handleGesture))
swipeDown.direction = .down
self.view.addGestureRecognizer(swipeDown)
}

第2步:检查handleGesture()方法中的手势检测

func handleGesture(gesture: UISwipeGestureRecognizer) {
if gesture.direction == .right {
print("Swipe Right")
}
else if gesture.direction == .left {
print("Swipe Left")
}
else if gesture.direction == .up {
print("Swipe Up")
}
else if gesture.direction == .down {
print("Swipe Down")
}
}

我希望这会对某人有所帮助。

更新:

您需要使用 @objc 来调用最新 swift 版本的“选择器”方法。即,

@objc func handleGesture(gesture: UISwipeGestureRecognizer) -> Void {
.
.
.
}

关于swift - Swift 3 中的滑动手势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32583903/

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