iOS UI进阶-6.0 手势
2015-12-20 10:20 jiangys 阅读(385) 评论(0) 编辑 收藏 举报给每个页面添加手势,只需要统一设置不是根控制器的页面,都增加手势。需要自定义导航控制器
1.继承代理
1 | @interface BSNavigationController ()<UIGestureRecognizerDelegate> |
2.设置代理
1 2 3 4 5 6 7 | - ( void )viewDidLoad { [ super viewDidLoad]; // 设置pop手势代理 self .interactivePopGestureRecognizer.delegate = self ; } |
3.实现代理
#pragma mark - <UIGestureRecognizerDelegate> /** * push进来的控制器大于1个,手势有效 */ - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{ return self.viewControllers.count > 1; }
在开发过程中,经常会用到,需要关闭某个页面的手势返回功能。
// 禁用返回手势 - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; // 禁用 返回手势 if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) { self.navigationController.interactivePopGestureRecognizer.enabled = NO; } } // 开启手势 - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; // 开启手势 if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) { self.navigationController.interactivePopGestureRecognizer.enabled = YES; } } // 导航栏返回 - (void)blackBtnClick { // 开启手势,有时只在(void)viewWillDisappear:(BOOL)animated开启,该根栏目下所有的手势都会失效 if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) { self.navigationController.interactivePopGestureRecognizer.enabled = YES; } [self.navigationController popToRootViewControllerAnimated:YES]; }
参考网站:http://blog.csdn.net/jasonblog/article/details/28282147
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端