华山论剑之iOS的解决“UIScrollView不能响应UITouch事件“

2023-11-25 21:40

本文主要是介绍华山论剑之iOS的解决“UIScrollView不能响应UITouch事件“,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

信念和目标,必须永远洋溢在程序员内心。
问题的实例

前两天在做注册界面的时候(类似于下图),由于注册的条件过多,所以像5s等根本就不放下去,那么解决的方案就出现了两种,一种就是使用tableView的形式做注册页面,另外一种方式就是用UIscrollView做一个滑动视图,然后上面添加各种输入框,我选择的是第二种(看起来麻烦,其实处理起来差不多,这个问题我会在后面的博客做详解),既然是注册,那么必不可少的就是输入框UITextField了,当我们输入完成的时候,我们想要取消第一响应者,我们实现了- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 这个方法,但是程序根本不取消对应UITextField的第一响应者…

注册页面


问题的原因

原因很简单,UIView的touch事件被UIScrollView捕获了,UIView获取不到touch事件,自然不能取现对应的UITextField的第一响应者了.


问题的解决方案

既然我们知道了UIView的touch事件被UIScrollView捕获了 ,只要让让UIScrollView将事件传递过去就可以了。最简单的解决办法就是加一个UIScrollView的category。这样每个用到UIScrollView的地方只要导入这个category就可以直接响应相关的touch事件了。 我们看一下category(延展)当中我们改如何重写touch相关的方法.

#import "UIScrollView+UITouch.h"
@implementation UIScrollView (UITouch)- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
[[self nextResponder] touchesBegan:touches withEvent:event]; 
[super touchesBegan:touches withEvent:event];
}-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {[[self nextResponder] touchesMoved:touches withEvent:event]; 
[super touchesMoved:touches withEvent:event];
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { 
[[self nextResponder] touchesEnded:touches withEvent:event];[super touchesEnded:touches withEvent:event];
}@end
本博客相关的Demo没有做,如果有任何疑问,请在下面评论区写上您的问题,我会及时的回复您.谢谢.

这篇关于华山论剑之iOS的解决“UIScrollView不能响应UITouch事件“的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/424654

相关文章

Java 中的跨域问题解决方法

《Java中的跨域问题解决方法》跨域问题本质上是浏览器的一种安全机制,与Java本身无关,但Java后端开发者需要理解其来源以便正确解决,下面给大家介绍Java中的跨域问题解决方法,感兴趣的朋友一起... 目录1、Java 中跨域问题的来源1.1. 浏览器同源策略(Same-Origin Policy)1.

如何解决yum无法安装epel-release的问题

《如何解决yum无法安装epel-release的问题》:本文主要介绍如何解决yum无法安装epel-release的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录yum无法安装epel-release尝试了第一种方法第二种方法(我就是用这种方法解决的)总结yum

python3 pip终端出现错误解决的方法详解

《python3pip终端出现错误解决的方法详解》这篇文章主要为大家详细介绍了python3pip如果在终端出现错误该如何解决,文中的示例方法讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下... 目录前言一、查看是否已安装pip二、查看是否添加至环境变量1.查看环境变量是http://www.cppcns

idea中project的显示问题及解决

《idea中project的显示问题及解决》:本文主要介绍idea中project的显示问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录idea中project的显示问题清除配置重China编程新生成配置总结idea中project的显示问题新建空的pr

Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题

《Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题》:本文主要介绍Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录一、前言二、系统架构检测三、卸载旧版 Go四、下载并安装正确版本五、配置环境变量六、验证安装七、常见

解决Java异常报错:java.nio.channels.UnresolvedAddressException问题

《解决Java异常报错:java.nio.channels.UnresolvedAddressException问题》:本文主要介绍解决Java异常报错:java.nio.channels.Unr... 目录异常含义可能出现的场景1. 错误的 IP 地址格式2. DNS 解析失败3. 未初始化的地址对象解决

springboot+vue项目怎么解决跨域问题详解

《springboot+vue项目怎么解决跨域问题详解》:本文主要介绍springboot+vue项目怎么解决跨域问题的相关资料,包括前端代理、后端全局配置CORS、注解配置和Nginx反向代理,... 目录1. 前端代理(开发环境推荐)2. 后端全局配置 CORS(生产环境推荐)3. 后端注解配置(按接口

电脑软件不能安装到C盘? 真相颠覆你的认知!

《电脑软件不能安装到C盘?真相颠覆你的认知!》很多人习惯把软件装到D盘、E盘,刻意绕开C盘,这种习惯从哪来?让我们用数据和案例,拆解背后的3大原因... 我身边不少朋友,在使用电脑安装软件的时候,总是习惯性的把软件安装到D盘或者E盘等位置,刻意避开C盘。如果你也有这样的习惯,或者不明白为什么要这么做,那么我

Idea插件MybatisX失效的问题解决

《Idea插件MybatisX失效的问题解决》:本文主要介绍Idea插件MybatisX失效的问题解决,详细的介绍了4种问题的解决方法,具有一定的参考价值,感兴趣的可以了解一下... 目录一、重启idea或者卸载重装MyBATis插件(无需多言)二、检查.XML文件与.Java(该文件后缀Idea可能会隐藏

Nginx 访问 /root/下 403 Forbidden问题解决

《Nginx访问/root/下403Forbidden问题解决》在使用Nginx作为Web服务器时,可能会遇到403Forbidden错误,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录解决 Nginx 访问 /root/test/1.html 403 Forbidden 问题问题复现Ng