Bil*_*ill 3 iphone uitableview uinavigationcontroller
我在tableView中有一个带有长数据列表的应用程序,我想双击导航栏以在列表顶部(搜索所在位置)滚动UITableView.
我该如何实现呢?
谢谢你的帮助.
ton*_*lon 16
将tableView滚动到顶部的标准手势是在状态栏上单击一下.它默认启用,请参阅UIScrollView参考
如果你真的想要导航栏并且你的目标是3.2及以上,我建议将UITapGestureRecognizer附加到navigationBar.
- (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];
}
Run Code Online (Sandbox Code Playgroud)
如果你的目标是3.0或更低,它可能会变得有点棘手,不推荐.
小智 9
根据tonklon的回答,您可以通过获取子视图来区分navigationBar视图中的各个项目.
navigationBar的子视图是:
0左按钮,1标题,2右按钮,
而不是:
[navController.navigationBar addGestureRecognizer:tapRecon];
Run Code Online (Sandbox Code Playgroud)
为导航栏的标题执行此操作:
[[self.navigationController.navigationBar.subviews objectAtIndex:1] setUserInteractionEnabled:YES];
[[self.navigationController.navigationBar.subviews objectAtIndex:1] addGestureRecognizer:tapRecon];
Run Code Online (Sandbox Code Playgroud)