2014-10-07 9 views
2

누군가가 버튼을 쓸 때 한 번 행동을 원합니다. 내가 한 번만 화재에 이벤트를 필요로하는 UIControlEvents 반대로 내가 제스처 recognisers를 사용할 필요가제스처 인식기를 신속하게 구현 한 후 어떻게 버튼 태그를 찾을 수 있습니까?

let recogniser = UISwipeGestureRecognizer(target: self, action: "didTapButton2:") 
    recogniser.direction = .Up 
    button.addGestureRecognizer(recogniser) 

    func didTapButton2(sender: UIGestureRecognizer!) { 

    //Here I want to be able to recognise which button this was sent from (they are all tagged) 
    let button = sender. as UIButton //Gives an error 

다음과 같이

내 현재 코드입니다. 이 기능을 사용하면 이벤트가 여러 번 실행됩니다. 한번만 실행하면됩니다.

button.addTarget(self, action: "didTapButton2:", forControlEvents: .TouchDragInside) 

해결책이있는 사람이 있습니까? 감사합니다

답변

6

UIGestureRecognizer에는 첨부 된보기 인 view이라는 속성이 있습니다. 보기는 선택 사항이므로 다음과 같이 해제해야합니다.

if let button = sender.view as? UIButton { 
    // use button 
    if button.tag == 10 { 
     // handle button tagged with 10 
    } 
}