首页 文章 精选 留言 我的

精选列表

搜索[右键菜单],共9331篇文章
优秀的个人博客,低调大师

iOS 开发之解决 MMDrawerController 侧滑菜单与中心视图手势冲突

MMDrawerController 是一个很好用的实现抽屉效果的第三方类,但有时候当我们在中心视图的子视图控制器中需要使用手势进行其他操作的时候会产生手势冲突,导致运行效果不符合我们的想象。那么问题来了,该怎么解决冲突问题呢? 下面是我在使用过程中的个人总结: 需求: 1、只有左抽屉和中心视图控制器,在中心视图的子视图控制器右滑可以打开左抽屉。 2、中心视图的子视图控制器中的 Cell 可通过滑动手势显示自定义 Cell 中的删除按钮 问题: 1、由于删除 Cell 的左滑手势和 MMDrawerController 的打开右抽屉的左滑手势有冲突,导致左滑显示自定义 Cell 删除按钮的方法不响应。 期待效果: 1、解除删除 Cell 的手势冲突 2、右滑可以打开左抽屉 思考过程: MMDrawerController 中应该有一个识别手势的方法,只要找到这个方法问题就可以得到解决。 解决过程: 1、在 MMDrawerController 文件夹下的各个.m文件中通过 Command+F 搜寻 GestureRecognizer,最终在 MMDrawerController 这个类中找到这个方法 -(MMOpenDrawerGestureMode)possibleOpenGestureModesForGestureRecognizer:(UIGestureRecognizer*)gestureRecognizer withTouch:(UITouch*)touch; 2、在这个方法中找到了 PointContainedWithinCenterViewContentRect: 这个判断条件,按住 Command 点击后跳到它所在的位置,在这里找到了问题所在。解决方式如下: MMDrawerController.m 1443 行 -(BOOL)isPointContainedWithinCenterViewContentRect:(CGPoint)point{ // CGRect centerViewContentRect = self.centerContainerView.frame; // 原文意思是把触发抽屉的手势识别放在整个屏幕中 CGRect centerViewContentRect = CGRectMake(0, 0, 50, self.centerContainerView.frame.size.height); // 修改后的意思是把触发打开抽屉手势识别放在屏幕左侧宽50,高为屏幕高度的 rect 中 centerViewContentRect = CGRectIntersection(centerViewContentRect,self.childControllerContainerView.bounds); return (CGRectContainsPoint(centerViewContentRect, point) && [self isPointContainedWithinNavigationRect:point] == NO); }

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册