2016-11-08 1 views
0

에 나는 UITableViewCell 클래스가 다른 것들 사이에서 UIImageViewUILabel을 포함 CommentsTableViewCell 이름이있다. 내가 사용UITapGestureRecognizer UIImageView에 작업을하지만 UILabel의

코드 :

let tapGesture = UITapGestureRecognizer(target: self, action: #selector(CommentsTableViewCell.showUserViewController)) 
nameLabel.userInteractionEnabled = true 
avatarRoundImageView.userInteractionEnabled = true 
nameLabel.addGestureRecognizer(tapGesture) 
avatarRoundImageView.addGestureRecognizer(tapGesture) 

당신은 내가 UIImageView 또는 UILabel이 도청 될 때마다 다른 UIViewController을 표시하는 기능을 이해할 수있다.

tapGestureUIImageView에서 올바르게 작동하지만 UILabel에서는 올바르게 동작하지 않습니다.

아이디어가 있으십니까?

답변

1

당신은 모든 제어 당신은이 UITapGestureRecognizer 객체를 생성 할 필요가

let tapGesture = UITapGestureRecognizer(target: self, action: #selector(CommentsTableViewCell.showUserViewController)) 
avatarRoundImageView.userInteractionEnabled = true 
avatarRoundImageView.addGestureRecognizer(tapGesture) 

let tapGesture2 = UITapGestureRecognizer(target: self, action: #selector(CommentsTableViewCell.showUserViewController)) 
nameLabel.userInteractionEnabled = true 
nameLabel.addGestureRecognizer(tapGesture2) 
3

에 대해 서로 다른 제스처가 필요 하나 UI 요소 객체와 UITapGestureRecognizer 작품 때문이다. 따라서 두 번째 TapGestureRecognizer을 만들고 하나를 UILabel 및 하나를 UIImageView으로 지정하십시오.

UIGestureRecognizer.

제스처 인식기는 특정보기 및 해당보기의 모든 하위보기에 대해 히트 테스트 된 터치로 작동합니다. 따라서이보기와 연관되어야합니다. 해당 연결을 만들려면 addGestureRecognizer(_:) UIView 메서드를 호출해야합니다. 제스처 인식기는 뷰의 응답자 체인에 참여하지 않습니다.

관련 문제