UITouch
2015-09-22 00:51
555 查看
1. UITouch对象概念:
当用户用一根手指触摸屏幕时,会创建一个与手指相关联的UITouch对象,可以说一根手指对应一个UITouch对象。
2. UITouch的作用:
a.保存着跟本次手指触摸相关的信息,比如触摸的位置、时间、阶段;
b.当手指移动时,系统会更新同一个UITouch对象,使之能够一直保存该手指所在的触摸位置;
c.当手指离开屏幕时,系统会销毁相应的UITouch对象;
提示:iPhone开发中,要避免使用双击事件!
3. UITouch的6个属性
@interfaceUITouch : NSObject
//手指触摸屏幕的时间戳
@property(nonatomic,readonly)NSTimeInterval timestamp;
//手指触摸的那个view所在的window
@property(nonatomic,readonly,retain)UIWindow *window;
//手指触摸的那个view
@property(nonatomic,readonly,retain)UIView *view;
//短时间内点按屏幕的次数,可以根据tapCount判断单击、双击或更多的点击
@property(nonatomic,readonly)NSUInteger tapCount;
//记录了触摸事件产生或变化时的时间,单位是秒
@property(nonatomic,readonly)NSTimeInterval timestamp;
//当前触摸事件所处的状态
@property(nonatomic,readonly)UITouchPhase phase;
4. 两个对象方法:
-(CGPoint)locationInView:(UIView *)view;
返回值表示触摸在view上的位置
这里返回的位置是针对view的坐标系的(以view的左上角为原点(0, 0))
调用时传入的view参数为nil的话,返回的是触摸点在UIWindow的位置
-(CGPoint)previousLocationInView:(UIView*)view;
该方法记录了前一个触摸点的位置
5. 补充:
typedefNS_ENUM(NSInteger, UITouchPhase) {
// whenever a finger touches the surface.
UITouchPhaseBegan,
// whenever a finger moves on the surface.
UITouchPhaseMoved,
// whenever a finger is touching the surface but hasn't movedsince the previous event.
UITouchPhaseStationary,
// whenever a finger leaves the surface.
UITouchPhaseEnded,
// whenever a touch doesn't end but we need to stop tracking (e.g.putting device to face)
UITouchPhaseCancelled,
};
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 国内php原创论坛
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- IOS 改变键盘颜色代码
- 举例详解iOS开发过程中的沙盒机制与文件
- Android和IOS的浏览器中检测是否安装某个客户端的方法
- javascript实现阻止iOS APP中的链接打开Safari浏览器
- IOS开发第三方语音-微信语音
- iOS开发之路--微博OAuth授权_取得用户授权的accessToken
- 基于UIControl控件实现ios点赞功能