내부에 UIImageView
imgView가있는 사용자 정의 tableviewCell이 있습니다. imgView에 UITapGestureRecognizer
을 추가 했으므로 언제든지 탭할 때마다 imgView의 이미지를 변경할 수 있습니다. 그러나 imgView를 탭하면 didSelectRowAtIndexPath
도 실행됩니다. 내가 원하는 것은 :셀 선택없이 서브 뷰에서 UITableViewCell 누르기
- 것은 외부 imgView을 눌러 경우 : 트리거
didSelectRowAtIndexPath
- imgView 내부 태핑 : 블록
didSelectRowAtIndexPath
, 단지 imgView의 이미지를 변경하는 제스처 콜백 호출합니다.
imgView를 탭하면 콜백 기능이 이미 호출되었지만이 경우 didSelectRowAtIndexPath를 차단할 수 없습니다. 나는 몇 시간 동안 검색을 해왔지만 아직 해결책을 찾지 못했습니다. 나는 objective-c을 사용하고 있습니다. 누구든지 내 문제에 대해 어떤 생각을 가지고 있습니까? 모두 감사합니다!
업데이트 마지막으로 나는 내 실수가 무엇인지 알게되었습니다.
UITapGestureRecognizer* tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onFavouriteIconTapped:)];
tapGesture.cancelsTouchesInView = NO; // this should be YES by default
[_ivImageView addGestureRecognizer:tapGesture];
그냥 cancelsTouchInView = YES
으로 설정하면 문제가 해결됩니다. 값이 YES이면 터치 이벤트는 ivImageView에 의해 소비되고 셀은 선택되지 않습니다. 이것이 동일한 문제가있는 사람을 도울 수 있기를 바랍니다.
UITapGesture 및 UIImageView 대신 UIButton 및 동작을 추가해보십시오. – iphonic
사용중인 언어의 태그를 추가하십시오. Obj C 또는 Swift. – NSNoob
이 [UIGesture 및 UITableView] (http://stackoverflow.com/questions/4604296/uigesturerecognizer-and-uitableviewcell-issue) – gurmandeep