UITouch

UITouch对象

  • 当用户用一根手指触摸屏幕时,会创建一个与手指相关联的UITouch对象

  • 一根手指对应一个UITouch对象

UITouch的作用

  • 保存着跟手指相关的信息,比如触摸的位置、时间、阶段

  • 当手指移动时,系统会更新同一个UITouch对象,使之能够一直保存该手指在的触摸位置

  • 当手指离开屏幕时,系统会销毁相应的UITouch对象

属性:

  • 触摸产生时所处的窗口
    @property(nonatomic,readonly,retain) UIWindow *window;

  • 触摸产生时所处的视图
    @property(nonatomic,readonly,retain) UIView *view;

  • 短时间内点按屏幕的次数,可以根据tapCount判断单击、双击或更多的点击
    @property(nonatomic,readonly) NSUInteger tapCount;

  • 记录了触摸事件产生或变化时的时间,单位是秒
    @property(nonatomic,readonly) NSTimeInterval timestamp;

  • 当前触摸事件所处的状态
    @property(nonatomic,readonly) UITouchPhase phase;

方法:

1
2
3
4
5
6
7
/* 返回值表示触摸在view上的位置

这里返回的位置是针对view的坐标系的(以view的左上角为原点(0, 0))

调用时传入的view参数为nil的话,返回的是触摸点在UIWindow的位置 */

- (CGPoint)locationInView:(UIView *)view;
1
2
3
4
5
6
7
8
9
10
11
// 该方法记录了前一个触摸点的位置
- (CGPoint)previousLocationInView:(UIView *)view;

// 获取UITouch对象
UITouch *touch = [touches anyObject];

// 获取当前点
CGPoint curP = [touch locationInView:self];

// 获取上一个点
CGPoint preP = [touch previousLocationInView:self];

提示:iPhone开发中,要避免使用双击事件!

更多内容访问:*UITouch*

文章作者: Ammar
文章链接: http://lizhaoloveit.cn/2014/04/02/UITouch/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ammar's Blog
打赏
  • 微信
  • 支付宝

评论