新浪微博 有道云笔记 麦库 EverNote Pocket Instapaper 更多

多点触摸笔记

  1. /*
  2.  多点触摸演练目标
  3.  
  4. 1.如果是一根手指,在屏幕上绘制蓝色的图像
  5. 2.如果是多根手指,一根手指是蓝色的图像,另外一根是红色图像
  6.  
  7.  小结:
  8.  
  9. 1>touchesMoved方法中,touches集合中的UITouch对象的顺序不会发生改变
  10. 2>在使用块代码时,其中的代码只是预先准备好的一个程序块,在需要时会被调用
  11.  
  12. */
  13. /**
  14.  
  15. 1. hitTest方法,用于检测具体响应用户触摸点视图的方法
  16.  
  17. - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
  18.  
  19. - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event;
  20.  在视图内部返回YES,否则返回NO
  21.  
  22.  联合使用来判断用户触摸点的位置是否在指定的视图内部,如果是,表示该视图可以接收用户交互。
  23.  
  24.  以上两个方法会被循环递归,多次调用!直至找到最适合响应用户请求的视图!
  25.  
  26.  提示:一般情况下,不要轻易重写这两个方法,因为一旦方法内部使用了消耗量大的代码,会严重影响系统的性能!
  27.  窍门:一旦出现示例中需要拦截触摸事件的情况,可以与美工或者策划人员沟通,调整界面!
  28.  
  29. 1)如果返回nil,表示没有响应的视图
  30. 2)如果返回视图,表示该视图接收用户的响应
  31.  
  32. 2.接收用户触摸响应的几个条件
  33. 1) self.userInteractionEnabled = YES; 允许接收用户响应
  34. 2) self.hidden = NO;                只有现实的视图才能接收用户触摸
  35. 3) self.alpha > 0.01;                视图的透明度一定要可见
  36.  
  37.  提示:并不是所有的控件都默认接收用户交互的,譬如:UIImageViewUILabel
  38.  
  39. 3.参数说明
  40.  
  41. point 用户触摸的点,相对于当前视图坐标系的坐标点
  42. event 用户触摸事件,开发中一般程序员不使用,该事件用于在响应者链条上传递
  43. */
  44. /*
  45. 1. 成为第一响应者是监听摇晃事件的关键!
  46. 2. 在视图出现时,让视图控制器成为第一响应者
  47. 3. 在视图消失时,让视图控制器注销第一响应者身份
  48. 4. 监听摇晃运动事件
  49.  
  50.  关于微信的摇一摇实现思路:
  51.  
  52.  分析微信的功能的实现:
  53. 1> 进入界面,貌似什么也没有发生;
  54. 2> 摇一摇,咔嚓一声,出现转轮,貌似在干些什么
  55. 3> 转轮消失,得到用户信息(网名,男女,距离你的距离)

  56.  实现过程:
  57. 1> 进入界面,利用CoreLocationMapKit会具体讲解)定位用户当前的位置;
  58.  
  59. 2> 用户摇 -> 将用户的经纬度,用户账号,摇晃的时间,发送到微信的服务器;
  60.  
  61. 3> 后台处理(1),计算当前时间一定范围内,很难保证同一时间摇晃手机,可以有一个时间的误差,譬如10s
  62.  摇晃手机的用户(有可能1~10000个)
  63. 4> 后台处理(2),如果用户过多,计算前10~20名距离用户最近的摇晃用户的信息,产生列表,并发送给用户手机
  64.  
  65. 5> 用户接到数据后,使用UITableView展现数据
  66.  
  67. 6> 选中表格行,查看用户详细信息,决定是不是需要进一步的交流
  68.  
  69. */
posted @ 2014-02-19 16:51  iTeaTime(技术清谈)  阅读(175)  评论(0编辑  收藏  举报