Swift - 把整個 UIView 當成按鈕

「能按的只有Button未免也太不方便了吧」約翰不滿的說著

「那就讓整個UIView都可以按吧,但後果你得…喂喂~~~聽完呀」可樂不耐煩的講著

講起來很簡單,不過查了許多資料,試了很多方法

才發現一直卡在小地方

也就是要給action的參數,有查到字串的,或是放Function的

首先嘗試使用放字串,但在點下去後會出 Error,

 

最後查到以下是 Swift 3.0 作法 Objective-C的有遇到再說

@IBOutlet weak var myViewButton: UITableView!

override public func viewDidLoad() {
    ...

    if nil == self.myViewButton.gestureRecognizers {
        let tap = UITapGestureRecognizer(target: self, action: #selector(self.myViewButtonOnTapped(sender:)))
        self.myViewButton.addGestureRecognizer(tap)
    }
    ...
}

myViewButton得要宣告,並且把Storyboard上的 Component 綁定好

 

 Function的宣告如下,內容就隨你要做什麼囉

@objc func myViewButtonOnTapped(sender: UITapGestureRecognizer?) {
    print("myViewButtonOnTapped")
}

打到這邊,需求已經滿足了

但如果你這個 View 裡面還有其它 Button 或物件有 Tap 或 Click 的需求怎麼辦

這個嘛,如果是這樣,相信你就不會想把整個View拿來當Button了,對吧!!