2017-04-25 10 views
0

プログラムで作成されたスライダークラス(class Slider: UIControl)があります。ダブルタップジェスチャーを追加して、デフォルト設定にリサイズします。 Unfortunatelly SpriteKitで以前と同じようにUITapGestureRecognizerを実装することはできません。コードのUIControlにUITapGestureRecognizerを追加する

一部は:今の

class Slider: UIControl{ 
    ... 
    let doubleTap : UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(doubleTapped)) 
    ... 

    init(){ 
     ... 
     doubleTap.numberOfTapsRequired = 1 
     addGestureRecognizer(doubleTap) 
    } 

    func doubleTapped(){ 
     print("double tapped") 
    } 
} 

私はジェスチャー認識を実装し、その後、私は何をする必要があるか追加したいと思います。また、私はtouchesMovedとtouchesBeganを実装しました。

+1

まず初めに、letの初期化セレクタは機能しません。この時点でオブジェクトが完全に初期化されていないため、initに移動してください。次に、デリゲートを使用してセレクタと呼ばれない理由を判断しようとします。システムジェスチャ認識プログラムの一部があなたのイベントを受け取るかもしれません。 – vojer

+0

なぜ 'init'と' doubleTapped'メソッドはクラスの一部ではなくクラスの外にありますか? – rmaddy

+0

@rmaddyは間違いだったので、initとdoubleTappedはクラス – codddeer123

答えて

1

答えは非常に単純です。代理人は必要ありません。

関連する問題