2018年3月14日 星期三

UIView & UIImageView 的點擊觸發事件 Swift4

有一段時間沒記錄小功能分享了,今天要分享的是觸發事件。
我想很多新手或是想偷懶的時候在某些特定畫面上會放一個無色無味的UIButton
至少目的有達到....其實也沒什麼不好。
但是本身有觸發事件,學起來對自己是有好處的^^
如果大家有印象我之前有寫過鍵盤監聽(網誌:前往觀看

今天就不附上SotryBoard的畫面了,因為這只是簡單的小分享。

原理其實很簡單,一樣是使用UITapGestureRecognizer

先來說明UIView的使用,不管你是用storyboard拉的outlet還是程式碼建立方法都一樣
我這邊適用storyboard做的,就麻煩自己稍微思考摟^^
首先建立UITapGestureRecognizer

let MyTouch = UITapGestureRecognizer()
        MyTouch.addTarget(self, action: #selector(myView_Touch))

當然你也可以這樣寫(比較聰明一點)

let myViewTouch = UITapGestureRecognizer(target: self, action: #selector(myView_Touch));

別忘了將觸發方法加入,讓UIView知道自己有這個功能

self.myView.addGestureRecognizer(myViewTouch);

selector裡面當然就是你自己定義觸發的方法
@objc func myView_Touch(){
        print("點擊了view")

    }


接下來是UIImageView,在ImageView這邊要記得多寫一行...

 myImage.isUserInteractionEnabled = true
主要是讓用戶可以進行變更或動作(互動)
大家可能會好奇為什麼UIView可以不用寫,因為UIView本身默認是true
但UIImageView跟UILable的默認是false所以要加這行上去,讓他知道我們是要能互動的
剩下的寫法都跟UIView一樣,我就一次貼上來給大家參考

  let myImageTouch = UITapGestureRecognizer(target: self, action: #selector(myImage_Touch));
        myImage.isUserInteractionEnabled = true

        self.myImage.addGestureRecognizer(myImageTouch);

 @objc func myImage_Touch(){
        print("點擊了image")

    }

希望這多少有幫助到需要的朋友們