iOS开发笔记之多点触控(二) 开启多点触控的方法
2014-01-14 23:59
369 查看
若在真机设备构建和运行应用程序,就会发现虽然在屏幕上按下了两根手指,但第二个触点却被忽略了。这是因为,默认情况下View是忽略多触点的,必须专门为需要支持多触点的View开启此功能。若要开启多触点,需要编写代码修改根视图的multipleToucheEnabled属性。
在触摸的生命周期里,每个UITouch对象都为同一个实例化对象,也就是说屏幕每个独立触摸全程都表示各为同一UITouch对象。在触摸方法添加代码如下。
增加一段代码作用是打印出包含在集合中每个UITouch对象的内存地址。下面为设备屏幕按下两根手指的输出结果
2014-01-14 23:52:56.590 bbsTouch[3671:907] touchesBegan
2014-01-14 23:52:56.606 bbsTouch[3671:907] - 0x1ddaac00
2014-01-14 23:52:56.623 bbsTouch[3671:907] touchesBegan
2014-01-14 23:52:56.628 bbsTouch[3671:907] - 0x1dd9b690
2014-01-14 23:52:56.633 bbsTouch[3671:907] touchesMoved
2014-01-14 23:52:56.637 bbsTouch[3671:907] - 0x1ddaac00
2014-01-14 23:52:56.895 bbsTouch[3671:907] touchesMoved
2014-01-14 23:52:56.902 bbsTouch[3671:907] - 0x1dd9b690
2014-01-14 23:52:56.904 bbsTouch[3671:907] - 0x1ddaac00
2014-01-14 23:52:56.958 bbsTouch[3671:907] touchesEnded
2014-01-14 23:52:56.963 bbsTouch[3671:907] - 0x1dd9b690
2014-01-14 23:52:56.967 bbsTouch[3671:907] - 0x1ddaac00
两根手指先后触摸屏幕,进入touchesBegan,内存分为0x1ddaac00,0x1dd9b690触摸过程完成后,内存地址也能被系统回收。
转载请注明原著:http://blog.csdn.net/marvindev
下一篇介绍iOS开发笔记之多点触控(三) 调用UITouch对象方法——locationInView,多点移动多个对象
self.view.multipleTouchEnabled = TRUE;
在触摸的生命周期里,每个UITouch对象都为同一个实例化对象,也就是说屏幕每个独立触摸全程都表示各为同一UITouch对象。在触摸方法添加代码如下。
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event //首次在屏幕上检测到触摸时调用 { NSLog(@"touchesBegan"); for (UITouch *touch in touches) { NSLog(@" - %p",touch); } } -(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event //如果触摸移动到了新的位置则会调用此方法 { NSLog(@"touchesMoved"); for (UITouch *touch in touches) { NSLog(@" - %p",touch); } } -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event//当触摸离开屏幕调用此方法 { NSLog(@"touchesEnded"); for (UITouch *touch in touches) { NSLog(@" - %p",touch); } } -(void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event//如系统决定取消此次触摸,那可能就不调用touchesEnded方法了,在这种情况下会调用touchesCancelled方法 { NSLog(@"touchesCancelled"); for (UITouch *touch in touches) { NSLog(@" - %p",touch); } }
增加一段代码作用是打印出包含在集合中每个UITouch对象的内存地址。下面为设备屏幕按下两根手指的输出结果
2014-01-14 23:52:56.590 bbsTouch[3671:907] touchesBegan
2014-01-14 23:52:56.606 bbsTouch[3671:907] - 0x1ddaac00
2014-01-14 23:52:56.623 bbsTouch[3671:907] touchesBegan
2014-01-14 23:52:56.628 bbsTouch[3671:907] - 0x1dd9b690
2014-01-14 23:52:56.633 bbsTouch[3671:907] touchesMoved
2014-01-14 23:52:56.637 bbsTouch[3671:907] - 0x1ddaac00
2014-01-14 23:52:56.895 bbsTouch[3671:907] touchesMoved
2014-01-14 23:52:56.902 bbsTouch[3671:907] - 0x1dd9b690
2014-01-14 23:52:56.904 bbsTouch[3671:907] - 0x1ddaac00
2014-01-14 23:52:56.958 bbsTouch[3671:907] touchesEnded
2014-01-14 23:52:56.963 bbsTouch[3671:907] - 0x1dd9b690
2014-01-14 23:52:56.967 bbsTouch[3671:907] - 0x1ddaac00
两根手指先后触摸屏幕,进入touchesBegan,内存分为0x1ddaac00,0x1dd9b690触摸过程完成后,内存地址也能被系统回收。
转载请注明原著:http://blog.csdn.net/marvindev
下一篇介绍iOS开发笔记之多点触控(三) 调用UITouch对象方法——locationInView,多点移动多个对象
相关文章推荐
- iOS开发笔记之多点触控(一)处理触摸的4个方法
- iOS开发笔记之多点触控(三) 调用UITouch对象方法——locationInView,多点移动多个对象
- iOS开发笔记--代理方法
- iOS应用开发中实现页面跳转的简单方法笔记
- iOS开发学习笔记之swift3.0几种加载网络图片的方法
- iPhone开发笔记(21)iOS 6旋转问题解决方法汇总
- IOS开发笔记-NSURLConnection同步请求和异步请求以及get方法,post方法
- IOS开发笔记之二十一——一种跨类调用方法的案例
- iOS开发笔记--解决UITableView中Cell重用机制导致内容出错的方法总结
- iOS开发笔记--解决UITableView中Cell重用机制导致内容出错的方法总结
- ios开发笔记-循环调用/执行一个方法
- iOS开发笔记 --iOS7 API 对sizeWithFont的替代方法
- iOS开发笔记——常用API方法
- ios开发笔记之十一 --viewDidload的方法的基本介绍用代码设置按钮的属性
- iOS开发笔记--代理方法
- iPhone开发笔记(21)iOS 6旋转问题解决方法汇总
- iOS开发笔记之五十四——App减肥常用方法
- IOS开发笔记之十六——查看静态库文件支持的arm64指令集架构的方法
- IOS开发笔记:xcode4.2下xib的创建和UI连接的实现方法
- iPhone开发笔记[6/50]-applicationDidFinishLaunching是iOS3.0以前用的方法