2016-12-15 52 views
0

這看起來很簡單,但我一直在撕掉我的頭髮一段時間,現在想知道爲什麼這不起作用。我試圖在點擊時更改圖像,但它似乎完全無法識別水龍頭。我已經在故事板和編程上啓用了用戶交互,所以我有點失落。UITapGestureRecognizer不能在Swift 3.0中工作

override func viewDidLoad() { 
    super.viewDidLoad() 

    tL.isUserInteractionEnabled = true 

    x = UIImage(named: "Cross.jpg") 
    reset = UIImage(named: "white.png") 

    //Tap Gesture ------------------------------------------------------------ 

    let gestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(Logic)) 
    gestureRecognizer.numberOfTapsRequired = 1 

    tL.addGestureRecognizer(gestureRecognizer) 
} 

func Logic(_ sender: UITapGestureRecognizer) { 
    let tappedView = sender.view as! UIImageView 
    tappedView.image = x 
    print("Image Tapped") 
} 
+1

不要窩裏面'viewDidLoad'你'Logic'功能。 – rmaddy

+0

已修改。這實際上並不在裏面,因爲不需要它,所以我剪掉了很多代碼。還是行不通。 – SwiftBeginner

+0

UITapGestureRecoginzer在swift3中正常工作。你的代碼,如果gestureRecognizer在viewDidLoad()裏面,而func邏輯在viewDidLoad()外面,應該也可以。問題是別的。 – dejix

回答

3

有趣的邏輯需要1個參數,你應該在你的選擇器中提供。從變化

let gestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(Logic)) 

let gestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(yourClassName.Logic(_ :)))