[英]Double Tap UINavigationController navigationBar?
我在tableView中有一个带有长数据列表的应用程序,我想双击导航栏以在列表顶部(搜索所在位置)滚动UITableView。
我该如何实现呢?
谢谢你的帮助。
将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];
}
如果你的目标是3.0或更低,它可能会变得有点棘手,不推荐。
根据tonklon的回答,您可以通过获取子视图来区分navigationBar视图中的各个项目。
navigationBar的子视图是:
0左按钮,1标题,2右按钮,
而不是:
[navController.navigationBar addGestureRecognizer:tapRecon];
为导航栏的标题执行此操作:
[[self.navigationController.navigationBar.subviews objectAtIndex:1] setUserInteractionEnabled:YES];
[[self.navigationController.navigationBar.subviews objectAtIndex:1] addGestureRecognizer:tapRecon];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.