2014-11-07 3 views
0

UISwipeGestureRecognizer 및 UITapGestureRecognizer를 신속하게 사용할 때 사이드 바를 만들어 엽니 다. 그것은 작동하지만 어떤 이유로 사이드 바 테이블 셀을 클릭하지 못하게합니다. 앱 주변을 클릭하자마자 사이드 바가 닫힙니다. 사이드 바 메뉴 바깥을 클릭하고 여전히 테이블 셀에 액세스 할 때만 닫으려고합니다. 이것은 제가 작성한 코드입니다. 더 많은 정보가 필요하면 알려주세요. 감사!TapGestureRecognizer에서 사이드 바 메뉴 만 닫으려고 시도

나는, 내 UIViewController에

class ViewController: UIViewController, SideBarDelegate { 

    var sideBar:SideBar = SideBar() 
override func viewDidLoad() { 
     super.viewDidLoad() 
// Side bar action and text 
     sideBar = SideBar(sourceView: self.view, menuItems: ["Home", "Business Directory", "Classifieds", "Featured News", "Jobs", "Restaurants", "Sports"]) 
     sideBar.delegate = self 
} 

// SideBar selections 
    func sideBarDidSelectButtonAtIndex(index: Int) { 
     if index == 0{ 
      println("You clicked the home label") 
     } else if index == 1{ 
      println("You clicked the business label") 
     } 
    } 

내가

let tapGestureRecognizer:UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "Tapped:") 
     tapGestureRecognizer.numberOfTapsRequired = 1 
     originView.addGestureRecognizer(tapGestureRecognizer) 

func Tapped(recognizer:UITapGestureRecognizer){ 
     if recognizer.numberOfTapsRequired == 1{ 
      showSideBar(false) 
      delegate?.sideBarWillClose?() 
     } 
    } 

답변

0

당신이 originView의 하위 뷰 사이드 바의 경우 내 SideBar.swift 파일의 기능을 호출하고있어 내 사이드 ​​바 테이블을 작성하고 있습니다 탭 제스처 인식기는 사용자가 사이드 바를 클릭하더라도 트리거됩니다.

사이드 바가 UITapGestureRecognizer에 반응하지 않게하려면 originView 위의 사이드 바를 추가해야합니다.