2017-05-12 4 views
0

제스처 인식기 주변에서 두뇌를 감싸는 데 문제가 있습니다. 하위 뷰를 대상으로하고 싶습니다.제스처 인식기 문제

let gesture = UITapGestureRecognizer(target: hex_pin_view!.add_emoji_img_view, action: #selector(openEmojis(sender:))) 
gesture.delegate = self 
mapView.addGestureRecognizer(gesture) 

나는 충돌 오류를 받고 있어요 : 내가 무엇을 찾고 여기

let gesture = UITapGestureRecognizer(target: hex_pin_view!, action: #selector(openEmojis(sender:))) 
gesture.delegate = self 
mapView.addGestureRecognizer(gesture) 

하위 뷰의 대상이 용량이 작동하지, 그리고 수 있습니다 : 여기에 기본보기와 함께 작동 예입니다 :

unrecognized selector sent to instance 

선택기가 동일하므로 알 수 없습니다.

누구나 내가 잘못하고있을 수있는 단서가 있습니까?

+0

선택기 메소드가 대상에 있어야합니다. – rmaddy

답변

0

제스처 인식기의 target은 제스처 인식기에서 메시지를 수신하는 객체입니다. 또는 메시지를 처리 ​​할 함수를 보유하고있는 객체를 넣을 수 있습니다.

목표 :자가 설정 시간입니다.

selector은 메시지를 처리 ​​할 함수/메소드입니다. 그래서이

let gesture = UITapGestureRecognizer(target: self, action: #selector(openEmojis(sender:))) 
gesture.delegate = self 
mapView.addGestureRecognizer(gesture) 

는 방법이 있어야 currrent 클래스/객체는 openEmojis를했다. 제스처가 여기에 추가됩니다.

지도가 도청되면 해당 기능을 호출해야합니다.

하위 뷰를 두드렸을 때 제스처가 실행되도록하려는 경우. 대신 제스처 인식기를 서브 뷰에 추가하십시오.

add_emoji_img_view.addGestureRecognizer(gesture) 
+0

재생 해 주셔서 감사합니다. 제스처 인식기를 행운없이 하위 뷰에 추가하려고했습니다. 메인 뷰가 MKAnnotationView에 서브 뷰로 추가 된 UIView 클래스에 있다고 언급하는 것을 잊었습니다. – Hexagons

+0

MKAnnotationView 자체에 이미 제스처 인식기가 있습니다. – Scriptable

+0

오류가 발생했습니다 : 'NSInvalidArgumentException', 이유 : '[[UIImageView openEmojisWithSender :] : 인식 할 수없는 선택기가 – Hexagons