2016-04-26 10 views
0

パンジェスチャーで移動できるビュー(スーパービュー)があります。このビューには、TouchDownイベントのサブビュー(UIButton)があります。しかし、私がボタン(タッチダウンイベント処理)を押して、指を動かし続けると、私のスーパービューはパンジェスチャー方法を処理し始めます。 サブビューをタッチダウンしたときにsuperviewのパンジェスチャー方法を無効にする方法はありますか?タッチダウンボタン(サブビュー)

答えて

0

のUIViewのサブビューにタッチイベントを無効にするために、あなたはUIViewControllerに、この拡張機能を追加することができます。

extension UIViewController:UIGestureRecognizerDelegate { 
    func hideKeyboardWhenTappedAround() { 
     let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(UIViewController.dismissKeyboard)) 
     view.addGestureRecognizer(tap) 
     tap.delegate = self 
    } 

    func dismissKeyboard() { 
     view.endEditing(true) 
    } 
    public func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool { 
     if (touch.view!.isDescendantOfView(self.view) && touch.view != self.view){ 
      return false 
     } 
     return true 
    } 
} 
関連する問題