Ios 我试图在Swift 3中实现长按,但它被终止
我想使用Swift 3为UIView创建一个长手势点击。我已经做了以下操作,但问题是当我开始点击我的应用程序时,它就被终止了。知道为什么吗Ios 我试图在Swift 3中实现长按,但它被终止,ios,swift,uigesturerecognizer,Ios,Swift,Uigesturerecognizer,我想使用Swift 3为UIView创建一个长手势点击。我已经做了以下操作,但问题是当我开始点击我的应用程序时,它就被终止了。知道为什么吗 import UIKit class ViewController: UIViewController { @IBOutlet weak var image: UIView! override func viewDidLoad() { super.viewDidLoad() let longGesture =
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var image: UIView!
override func viewDidLoad() {
super.viewDidLoad()
let longGesture = UILongPressGestureRecognizer(target: self, action: Selector("longTap:"))
image.addGestureRecognizer(longGesture)
}
func longTap(sender : UIGestureRecognizer){
print("Long tap")
if sender.state == .ended {
image.backgroundColor = UIColor.green
}
else if sender.state == .began {
image.backgroundColor = UIColor.red
}
}
}
您不应该再使用
选择器(“longTap:”)
语法。而是使用选择器(ViewController.lontap)。问题是,在大重命名之后,选择器的名称不再是您期望的名称。试着在操场上跑步:
class Test : NSObject {
func didLongTap1(sender : UIGestureRecognizer) {
}
func didLongTap2(_ sender : Any) {
}
}
print("\(#selector(Test.didLongTap1))")
print("\(#selector(Test.didLongTap2))")
print("\(Selector("didLongTap1:"))")
它打印:
didLongTap1WithSender:
didLongTap2:
didLongTap1:
标题与你发布的问题有什么关系?请回答您的问题,包括有关错误的详细信息。完整的错误消息是什么?到底是哪一行导致了错误?有崩溃日志吗?加在这里。谢谢。我发现错误在于选择器:)
#选择器(longTap)
在这里就足够了:)@Fogmeister你刚才提到的是真的。但我对斯威夫特还很陌生。所以我想问你,为什么尽管主函数有输入,但我们不必在#选择器(longTap)中提到这一点:)