繁体   English   中英

双击UINavigationController navigationBar?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM