昨天將天氣API完成了,今天來分享一下在練習swift的時候遇過的神奇問題。
這是TableView裡的一個函式,功能是判斷有沒有點選Cell。
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
}
這是一個手勢的程式,功能是點選空白處會收起鍵盤。
func hideKeyboard(){
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(ViewController.disMissKeyBoard))
view.addGestureRecognizer(tap)
tap.cancelsTouchesInView = false
}
@objc func disMissKeyBoard(){
self.view.endEditing(true)
}
當兩個程式碼同時出現時,上面判斷有沒有點選Cell的函式沒有觸發,原因是因為他跟手勢的程式碼衝突到了。
要解決這個問題也很簡單,利用extension的方式將兩個程式碼分開。
extension ViewController {
func hideKeyboard(){
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(ViewController.disMissKeyBoard))
view.addGestureRecognizer(tap)
tap.cancelsTouchesInView = false
}
@objc func disMissKeyBoard(){
self.view.endEditing(true)
}
}
那麼今天就到這裡,明天再來分享一些奇怪的問題。