iT邦幫忙

2022 iThome 鐵人賽

DAY 29
0
Mobile Development

IOS新手之旅系列 第 29

IOS新手之旅 Day29:各種奇怪問題(1)

  • 分享至 

  • xImage
  •  

昨天將天氣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)
    }
}

那麼今天就到這裡,明天再來分享一些奇怪的問題。


上一篇
IOS新手之旅 Day28:天氣API(7)
下一篇
IOS新手之旅 Day30:各種奇怪問題(2)
系列文
IOS新手之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言