只要手指触摸屏幕,滑动,从屏幕离开,系统都会产生UIEvent对象类型的事件---当然包括UITouch事件 – touchesBegan:withEvent:   当用户触摸到屏幕时调用方法 – touchesMoved:withEvent:  当用户触摸到屏幕并移动时调用此方法 – touchesEnded:withEvent:  当触摸离开屏幕时调用此方法

– touchesCancelled:withEvent:  当触摸被取消时调用此方法

例子如下:

  1. //滑动开始事件
  2. - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
  3. {
  4. UITouch *touch = [touches anyObject];
  5. CGPoint pointone = [touch locationInView:self.view];//获得初始的接触点
  6. self.startPoint  = pointone;
  7. }
  8. //滑动移动事件
  9. - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
  10. {
  11. UITouch *touch = [touches anyObject];
  12. //imgViewTop是滑动后最后接触的View
  13. CGPoint pointtwo = [touch locationInView:imgViewTop];  //获得滑动后最后接触屏幕的点
  14. if(fabs(pointtwo.x-startPoint.x)>100)
  15. {  //判断两点间的距离
  16. bMove = YES;
  17. }
  18. }
  19. //滑动结束处理事件
  20. -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
  21. {
  22. UITouch *touch = [touches anyObject];
  23. CGPoint pointtwo = [touch locationInView:self.view];  //获得滑动后最后接触屏幕的点
  24. if((fabs(pointtwo.x-startPoint.x)>50)&&(bMove))
  25. {
  26. //判断点的位置关系 左滑动
  27. if(pointtwo.x-startPoint.x>0)
  28. {   //左滑动业务处理
  29. if (clicks>0) {
  30. clicks--;
  31. if ([wyKPI.sortZbs count]>1) {
  32. [btnRight setEnabled:YES];
  33. if(clicks==0)
  34. {
  35. [btnLeft setEnabled:NO];
  36. [btnRight setEnabled:YES];
  37. }
  38. [labTitle setText:[wyKPI.sortZbs objectAtIndex:(NSUInteger)clicks]];
  39. [labTitle setFont:[UIFont systemFontOfSize:14.0f]];
  40. [tabWyKPI reloadData];
  41. }
  42. }
  43. }
  44. //判断点的位置关系 右滑动
  45. else
  46. {  //右滑动业务处理
  47. if (clicks<[wyKPI.sortZbs count]-1) {
  48. clicks++;
  49. if ([wyKPI.sortZbs count]>1) {
  50. [btnLeft setEnabled:YES];
  51. if(clicks==[wyKPI.sortZbs count]-1)
  52. {
  53. [btnLeft setEnabled:YES];
  54. [btnRight setEnabled:NO];
  55. }
  56. [labTitle setText:[wyKPI.sortZbs  objectAtIndex:clicks]];
  57. [labTitle setFont:[UIFont systemFontOfSize:14.0f]];
  58. [tabWyKPI reloadData];
  59. }
  60. }
  61. }
  62. }
  63. }
//滑动开始事件
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint pointone = [touch locationInView:self.view];//获得初始的接触点
self.startPoint = pointone;
}
//滑动移动事件
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
//imgViewTop是滑动后最后接触的View
CGPoint pointtwo = [touch locationInView:imgViewTop]; //获得滑动后最后接触屏幕的点 if(fabs(pointtwo.x-startPoint.x)>100)
{ //判断两点间的距离
bMove = YES;
}
}
//滑动结束处理事件
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint pointtwo = [touch locationInView:self.view]; //获得滑动后最后接触屏幕的点
if((fabs(pointtwo.x-startPoint.x)>50)&&(bMove))
{
//判断点的位置关系 左滑动
if(pointtwo.x-startPoint.x>0)
{ //左滑动业务处理
if (clicks>0) {
clicks--;
if ([wyKPI.sortZbs count]>1) {
[btnRight setEnabled:YES];
if(clicks==0)
{
[btnLeft setEnabled:NO];
[btnRight setEnabled:YES];
}
[labTitle setText:[wyKPI.sortZbs objectAtIndex:(NSUInteger)clicks]];
[labTitle setFont:[UIFont systemFontOfSize:14.0f]];
[tabWyKPI reloadData];
}
}
}
//判断点的位置关系 右滑动
else
{ //右滑动业务处理
if (clicks<[wyKPI.sortZbs count]-1) {
clicks++;
if ([wyKPI.sortZbs count]>1) {
[btnLeft setEnabled:YES];
if(clicks==[wyKPI.sortZbs count]-1)
{
[btnLeft setEnabled:YES];
[btnRight setEnabled:NO];
}
[labTitle setText:[wyKPI.sortZbs objectAtIndex:clicks]];
[labTitle setFont:[UIFont systemFontOfSize:14.0f]];
[tabWyKPI reloadData];
}
}
}
}
}

IOS设备滑动事件的更多相关文章

  1. 关于overflow-y:scroll ios设备不流畅的问题

    最近做双创项目的时候因为页面有很多数据显示,所以打算让它Y轴方向滚动条的形式展现,但在测试阶段发现IOS设备滑动效果非常不理想: search by google之后找到解决办法: -webkit-o ...

  2. 移动端ios上下滑动翻页事件失效

    移动端开发过程中,在添加上下滑动事件时候,引入了最常用的移动端库zepto.js及其touch模块,有一种现象,安卓的手机没有问题,上下滑动翻页很正常 :但是到了ios上面,好啊,上下滑动会出现弹性滚 ...

  3. 移动设备、手机浏览器Javascript滑动事件代码

    以下经过本人测试成功. 测试平台:三星S5830I 操作系统:Android 2.3.6 浏览器:UC浏览器 HTML标准:HTML5 测试了三个事件:touchstart.touchmove 和 t ...

  4. JS移动客户端--触屏滑动事件 banner图效果

    JS移动客户端--触屏滑动事件 移动端触屏滑动的效果其实就是图片轮播,在PC的页面上很好实现,绑定click和mouseover等事件来完成.但是在移动设备上,要实现这种轮播的效果,就需要用到核心的t ...

  5. iOS新加速计事件(陀螺仪和加速计)

    iOS新加速计事件 [iOS新加速计事件] 1.iOS5.0以前,可以使用UIAcceleration来监听加速计事件. 2.Bug iOS5.0以后,UIAccelerometerDelegate已 ...

  6. windows phone和android,ios的touch事件兼容

    1.开发背景 最近用html5写了个小游戏,中间踩过无数坑,有很多甚至百度都百度不到答案,可见html5还真是不成熟,兼容性的复杂度比ie6有过之而无不及,性能那个渣简直无力吐槽.. 好了,吐槽结束, ...

  7. iPhone(iOS设备) 无法更新或恢复时, 如何进入恢复模式

    在更新或恢复 iPhone  时,如果遇到以下所列问题之一.可能就要将设备置于恢复模式,并尝试重新恢复设备. 设备不断地重新启动,但从未显示主屏幕. 无法完成更新或恢复,且 iTunes 不再能识别设 ...

  8. ios多手势事件

    开发ios应用时我们经常用到多手势来处理事情,如给scrollView增加点击事件,scrollView不能响应view的touch事件,但有时候却要用到多手势事件,那么我们可以给这个scrollVi ...

  9. Android 实现 IOS相机滑动控件

     IOS相比于Android,动画效果是一方面优势,IOS相机切换时滑动的动画很不错,看着是有一个3D的效果,而且变化感觉很自然.Android也可以通过Graphics下面的Camera可以实现3D ...

随机推荐

  1. MySQL Index Condition Pushdown(ICP) 优化

    本文是作者留下的一个坑,他去上茅坑了.茅坑是谁?你猜.

  2. HDU 1978 How many ways (DP)

    How many ways Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tot ...

  3. LeetCode 274

    H-Index Given an array of citations (each citation is a non-negative integer) of a researcher, write ...

  4. 关于VMware桥接的注意事项

    VMware 使用桥接  想固定住虚拟机的IP的同时还可以访问外网. 通过Linux的可视化操作界面固定设置IP,网关,子网掩码等配置信息,如下图: 附录本地Windows中的IP地址信息: 虚拟机和 ...

  5. Servlet & JSP - Cookie

    关于 Cookie 的内容,参考 HTTP - Cookie 机制 获取来自客户端的 cookie request.getCookies 方法可以获取来自 HTTP 请求的 cookie,返回的是 j ...

  6. winform版简易http服务器

    传人url运行(url以/结尾,例如:http://localhost:8080/web/ 监听这个url// 在浏览器 中输入 http://localhost:8080/web/?name=tes ...

  7. Windows命令实现Sleep

    等待一分钟:ping 192.0.2.2 -n 1 -w 60000 > nul 等待一秒钟:ping 192.0.2.2 -n 1 > nul (ping一次需要一秒钟) -w 6000 ...

  8. C# Winform AutoScaleMode属性

    属性的用法: None : 禁用自动缩放.(默认时) Font :根据类使用的字体(通常为系统字体)的维度控制缩放. Dpi : 根据显示分辨率控制缩放.常用分辨率为 96 和 120 DPI. In ...

  9. JavaScript动画附源码(一)

        JavaScript完成动画程序 1,效果图: 以上是纯CSS+JavaScript实现的.点击关闭按钮可以动态关闭这个方框.兼容IE/FF/Chrome.这样的效果如果用jquery实现起来 ...

  10. Android类库打包方法探究

    原文地址: http://www.cnblogs.com/wangchuanju/archive/2012/04/05/android_lib_jar.html 开发Android应用的时候,对于可用 ...