博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
触摸事件&手势识别
阅读量:6505 次
发布时间:2019-06-24

本文共 1287 字,大约阅读时间需要 4 分钟。

hot3.png

  1. 触摸事件&手势识别

1> 4个触摸事件,针对视图的 2> 6个手势识别(除了用代码添加,也可以用Storyboard添加)

附加在某一个特定视图上的,其中需要注意轻扫手势通常会附加到根视图上。

  • 大部分操作,都会在touchesBegan事件中处理,以防夜长梦多!
  • touchesEnd事件通常用于处理touchesMoved事件中的收尾工作!

3> 响应者链条,目的是为了让大家能够理解手势触摸事件的传递过程

以下是我自己学习触摸事件&手势识别的小案例,关于ios动画这一块我将不断更新,欢迎关注 .欢迎一起探讨

下面部分是我小案例中的代码,貌似你们看不懂哦!!!

#pragma mark - 开始
  • (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { NSLog(@"touchesBegan %@", touches); }

#pragma mark - 移动

  • (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { NSLog(@"touchesMoved");

    // 1. 获取到集合中的触摸对象 UITouch *touch = [touches anyObject]; // 2. 获取手指所在的位置 CGPoint location = [touch locationInView:self.view];

    // 根据运行发现,手指第一次移动时,红色视图会出现跳跃的情况,会影响用户的使用 // 1) 取出前一次的手指位置 CGPoint preLocation = [touch previousLocationInView:self.view];

    // 2) 计算两次手指之间的距离差值 CGPoint offset = CGPointMake(location.x - preLocation.x, location.y - preLocation.y); // 3) 修正红色视图的中心点 CGPoint center = CGPointMake(_redView.center.x + offset.x, _redView.center.y + offset.y);

    // 3. 设置红色视图的位置 self.redView.center = center; }

#pragma mark - 结束

  • (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { NSLog(@"touchesEnded"); }

#pragma mark - 被取消

  • (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event { NSLog(@"此事件不易调试"); }

转载于:https://my.oschina.net/panyong/blog/187960

你可能感兴趣的文章
Eclipse快捷键 10个最有用的快捷键
查看>>
2018-2019-1 20165302 实验五 通讯协议设计
查看>>
快速寻找满足条件的两个数
查看>>
centos6.5安装LNMP
查看>>
操作笔记:catalina.out膨胀太快,分割tomcat 7日志
查看>>
Golang 知识点总结
查看>>
JAVA 8 特性
查看>>
算法设计 - LCS 最长公共子序列&&最长公共子串 &&LIS 最长递增子序列
查看>>
iMatrix平台核心功能—权限管理介绍
查看>>
WebService之Axis2快速入门(7): Spring与axis整合发布为WebServic
查看>>
Uliweb查看模板调用关系
查看>>
C#与PHP通信压缩
查看>>
根据经纬度获取时区信息
查看>>
关于 Linux
查看>>
图文解析五大外链误区
查看>>
ios开发之导航控制器的原理
查看>>
《Netkiller Blockchain 手札》Hyperledger Fabric Java SDK Demo
查看>>
Spring cloud 安全部署与性能优化
查看>>
querySelector 和 querySelectorAll区别
查看>>
Linux系统_Centos7下安装Nginx
查看>>