나는 tableView에 긴 데이터 목록을 가진 앱을 가지고 있으며 목록 상단 (검색이있는 곳)에 UITableView를 스크롤하기 위해 navigationBar를 두 번 탭하고 싶습니다.UINavigationController navigationBar를 두 번 탭 하시겠습니까?
어떻게 구현할 수 있습니까?
도움 주셔서 감사합니다.
나는 tableView에 긴 데이터 목록을 가진 앱을 가지고 있으며 목록 상단 (검색이있는 곳)에 UITableView를 스크롤하기 위해 navigationBar를 두 번 탭하고 싶습니다.UINavigationController navigationBar를 두 번 탭 하시겠습니까?
어떻게 구현할 수 있습니까?
도움 주셔서 감사합니다.
테이블을 스크롤하는 표준 제스처는 맨 위에있는 상태 표시 줄의 한 번 탭입니다. 기본적으로 사용 설정됩니다. UIScrollView Reference
네비게이션 바를 정말로 원하는 경우 3.2 이상을 타겟팅하는 경우 UITapGestureRecognizer를 네비게이션 바에 연결하는 것이 좋습니다.
- (void)viewDidLoad {
UITapGestureRecognizer* tapRecon = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(navigationBarDoubleTap:)];
tapRecon.numberOfTapsRequired = 2;
[navController.navigationBar addGestureRecognizer:tapRecon];
[tapRecon release];
}
- (void)navigationBarDoubleTap:(UIGestureRecognizer*)recognizer {
[tableView setContentOffset:CGPointMake(0,0) animated:YES];
}
3.0 이하를 타겟팅하는 경우 조금 힘들 수 있으므로 권장하지 않습니다.
tonklon의 답변에 이어 하위보기를 가져 와서 네비게이션보기의 개별 항목을 구별 할 수 있습니다. 내비게이션 바의
파단은 :
0 leftbutton, 1 타이틀 2 rightbutton,
그래서 대신 :
[navController.navigationBar addGestureRecognizer:tapRecon];
탐색 바의 제목 이렇게 :
[[self.navigationController.navigationBar.subviews objectAtIndex:1] setUserInteractionEnabled:YES];
[[self.navigationController.navigationBar.subviews objectAtIndex:1] addGestureRecognizer:tapRecon];
이것은 작동합니다! 왜 이것이 답변으로 표시되지 않았는지 모르겠다. – Bot
두 가지 문제점 : 1) titleView의 높이가 탐색 바의 높이보다 작습니다. 2) 여러 개의 왼쪽 단추 (테스트되지 않음)가있는 경우 하위보기 색인이 변경 될 수 있습니다. 대체 솔루션은 다음과 같습니다. http://stackoverflow.com/a/21288149/235297 –
tatus 표시 줄과 자동으로 tableView의 맨 위로 이동합니다. 코드가 필요하지 않습니다. – Souljacker