2016-12-15 14 views
0

これは本当にシンプルに思えるかもしれませんが、なぜこれが動作しないのか疑問に思っています。タップしたときに画像を変更しようとしていますが、タップを認識していないようです。私はストーリーボードとプログラマチックの両方でユーザーとのやり取りを可能にしています。Swift 3.0でUITapGestureRecognizerが動作しない

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

funロジックには1つの引数が必要ですが、セレクタにそのように指定する必要があります。

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

から

let gestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(yourClassName.Logic(_ :))) 
関連する問題