2016-06-27 6 views
0

背景: 私は以前はタッチジェスチャー検出器を視野に入れていましたが、うまくいきました。 次に、私のアプリが成長し、今私は3つのビューに同じジェスチャー検出器を追加する必要があります。プログラムで追加されたサブビューでシングルタップジェスチャーが機能しない

問題: 私はビューに追加したときにジェスチャー検出器が呼び出されることはありません、「.addSubview」と親ビューに添付されている

コード:

parentView.addSubview(waveview) 
    parentView.addSubview(waveviewCap) 
    parentView.addSubview(waveviewCapBG) 

    let singleFingerDTap:UITapGestureRecognizer=UITapGestureRecognizer.init(target: self, action: "handleWaveviewTap") 
    singleFingerDTap.numberOfTapsRequired = 1; 

    self.waveview!.addGestureRecognizer(singleFingerDTap) 
    self.waveviewCap!.addGestureRecognizer(singleFingerDTap) 
    self.waveviewCapBG!.addGestureRecognizer(singleFingerDTap) 
+0

あなたは 'userInteractionEnabled'を試してみましたか? – AnthoPak

+3

異なるジェスチャーオブジェクトを異なるビューに追加しないでください。同じセレクタで異なるジェスチャを試してみてください –

答えて

0

してくださいあなたの親ビューにUIGestureRecognizerDelegateを追加し、 "shouldReceiveTouch"デリゲートメソッドを更新してください。

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool { 

    if touch.view == waveview || touch.view == waveviewCap || touch.view == waveviewCapBG { 

     return true 

    } 
    return false 
} 

はその作業を願って...

関連する問題