触摸事件

能执行触摸事件的类有一个共同的特点:都继承于UIResponder
因为UIView和UIViewController都继承于UIResponder,而几乎所有的控件都继承UIView,所以,控件都能执行触摸事件

触摸事件比较简单,只要实现三个方法就行:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    NSLog(@"Start touch.");
}

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
    NSLog(@"Moving...");  
}

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
    NSLog(@"Touch end.");
}
  • 触摸事件不执行的情况有:
    1. userInteractionEnabled=NO
    2. hidden=YES
    3. alpha=0~0.01
    4. 没有实现开始触摸方法(注意是touchesBegan:withEvent:而不是移动和结束触摸事件)

前三点都是针对UIView控件或其子控件而言的,第四点可以针对UIView也可以针对视图控制器等其他UIResponder子类。对于第四种情况这里再次强调是对象中重写了开始触摸方法,则会处理这个事件,如果仅仅写了移动、停止触摸或取消触摸事件(或者这三个事件都重写了)没有写开始触摸事件,则此事件该对象不会进行处理。

这篇文章参考至:【Kenshin Cui's Blog】【iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控】

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容