2017-04-12 2 views
2

내 주 창의 루트보기 컨트롤러 클래스 내에 UITapGestureRecognizer 속성을 설정했습니다. 재정의 된 viewDidLoad 함수를 호출하는 동안 addGestureRecognizer 메서드를 통해 이미지 속성에이 속성을 추가했습니다. 또한 image.isUserInteractionEnabled를 true로 설정했습니다.UITapGestureRecognizer 선택기가 호출되지 않습니다.

override func viewDidLoad() { 
    image.addGestureRecognizer(tap) 
    image.isUserInteractionEnabled = true 

    self.view.addSubview(image) 
} 

var tap = UITapGestureRecognizer(target: self, action: #selector(imagePressed(_ :))) 

슬프게도,이 실행시 호출되는() imagePressed 발생하지 않습니다. 저를 혼란스럽게하는 것은 다음 코드가 의도 한 결과를 생성한다는 사실입니다.

override func viewDidLoad() { 
    var tap = UITapGestureRecognizer(target: self, action:#selector(imagePressed(_ :))) 
    image.addGestureRecognizer(tap) 
    image.isUserInteractionEnabled = true 

    self.view.addSubview(image) 
} 

제 질문은 왜 UITapGestureRecognizer의 선택기가 첫 번째 경우에 호출되지 않는 것입니까?

는 스위프트 3, 엑스 코드 8.2.1

+1

당신이 코드는 당신이 첫 번째 시도가 일을 기대하는 방법, 올바른으로 무엇을 게시하는 경우? '탭'선언은 어떤 함수에도 없습니다! ** ** viewDidLoad() *에 속합니다. – dfd

+0

Tap이 내 View Controller 클래스의 속성입니다. –

+0

잘못 될 수는 있지만 제스처 인식기를 뷰의 속성으로 보거나 들어 본 적이 없습니다. 나는 그것이 끝날 수 있다고 생각하지 않는다. – dfd

답변

1

사용 여기 문제가 addGestureRecognizer 생각합니다. 당신의 viewDidLoad에 변경 시도 :

override func viewDidLoad() { 
    var tap = UITapGestureRecognizer(target: self, action:#selector(imagePressed(_ :))) 
    image.isUserInteractionEnabled = true 

    self.view.addSubview(image) 

    image.addGestureRecognizer(tapGesture) 
} 
+0

오 이런. 그게 내가 쓰려고했던 것인데, 질문은 여전히 ​​의미한다. –

+0

그럼, 업데이트하셨습니까? 그러나'imagePressed'는 여전히 호출하지 않습니다. –

+0

글쎄, 내 실제 코드는 올바른 구문을 가지고 있으므로 ya, imagePressed는 여전히 호출되지 않고있다. –

관련 문제