我是一個不愛總結的人,但是今天在開發遇到的bug,我不記錄下來是不行了,一是為了自己防止以后忘了,二是給以后的人鋪路,都2020年了,不能讓百度再把,15、16年的東西放在前面了,惡心到我了。
Xcode 版本11.2, Swift版本5,這是關于添加手勢后,點擊事件無法響應的問題,(事先聲明:isUserInteractionEnabled = true 不要忘了)
不知道何時起Swift的手勢識別器需要懶加載初始化,有大佬說是Xcode 10之后,我具體也不清楚,不過今天是遇到了,不響應,就需要懶加載,好了上代碼。
class ViewController: UIViewController {
@IBOutlet weak var aImageView: UIImageView! //拖拽的控件
lazy var tap: UITapGestureRecognizer = {
let tap = UITapGestureRecognizer(target: self, action: #selector(singleTapAction))
return tap
}()
override func viewDidLoad() {
super.viewDidLoad()
self.view.isUserInteractionEnabled = true
aImageView.isUserInteractionEnabled = true
aImageView.addGestureRecognizer(tap)
// Do any additional setup after loading the view.
}
@objc func singleTapAction() {
print("\(String(describing: tap.view))")
}
}
對了,補充一下:方法不需要加參數,不用聽一些人扯屁,不需要參數也可以調用點擊方法