2012-06-19 1 views
0

오리엔테이션 변경 중에 내 iPad의 오른쪽에 스크롤바를 자동으로 배치 할 수있는 유연한 너비의 UITableView가있는 iOS 앱이 있습니다. .유연한 너비 내에서 UITableViewCell의 클립 또는 마스크 '터치 가능'영역 UITableView

그러나 내 셀보기에는 터치 할 수있는 영역이 무엇인지 사용자에게 보여주는 크기를 조정할 수없는 배경이 있습니다. 그러나 사용자가 백그라운드 외부를 터치하면 테이블이 전체 화면을 덮고 있기 때문에 제스처가 didSelect 이벤트로 인터셉트됩니다.

그래서 나는 사용자 터치를 구문 분석하고 배경 밖에 있는지 확인한 다음 받아들이는 방법을 찾고 있습니다.

나는 복잡한 일을하기 위해 UIStoryBoard를 사용하고 있습니다.

업데이트 : 답변을 완료하려면 lolcat에서 제안한 두 가지 해결책 중 NSResponder 메서드를 재정의하기로 선택했습니다. 왜냐하면 이미 그려져있는 모든 Segues가있는 UIStoryBoard가 있기 때문입니다. NSResponder를 사용하여 뷰 컨트롤러에서 코드 줄을 변경하지 않았습니다.

답변

0

나는 터치가 차단되어야하는 셀 위에 보이지 않는 버튼을 배치하여 이와 같은 작업을 수행했습니다. didSelectRowAtIndexPath 함수가 정상적으로하는 것처럼 동작 할 버튼에 선택기로 응답하는 함수를 만듭니다.

그렇지 않으면 UITableViewCell을 서브 클래 싱하여 touchesBegan (또는 찾고자하는 것을 기반으로 touchesEnded)를 재정의 할 수 있습니다. 이렇게하면 셀 내에서 탭 한 정확한 점을 볼 수 있습니다. 이 방법은 seen here 일 수 있습니다.

+0

touchesBegin/End : UITableViewCell에서 메소드가 표시되지 않습니다. 사용 중지 되었습니까? – Leonardo

+0

터치 기능은 UIResponder 기능입니다. UITableViewCell은 UIResponder의 하위 클래스 인 UIView의 하위 클래스입니다. [문서는 여기에 있습니다.] (http://developer.apple.com/library/ios/#documentation/uikit/reference/UIResponder_Class/Reference/Reference.html) – Dima

+0

오케이, 알겠습니다. 답변에 오타가 있습니다. 방금 복사하여 붙여 넣기를하고 컴파일러는 불평했습니다. – Leonardo