• 触摸事件和微信实现原理


    触摸事件练习
    1.如果想让一个空间随你的手指的移动而移动,那么就再touchmove的方法中。
    UITouch *touch = [touches anyObject];
    CGPoint asd = [touch locationInView:self.view];
    self.redView.center = asd;
    2.拦截视图点击方法---->返回谁,就是点了谁
    //用于检测具体响应用户触摸点视图的方法
    - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
    {
    return self.blue;
    }
    3.摇一摇
    1>成为第一响应者
    - (BOOL)canBecomeFirstResponder
    {
    return YES;
    }
    2>在视图出现时,让视图控制器成为第一响应者
    - (void)viewDidAppear:(BOOL)animated
    {
    [self becomeFirstResponder];
    }
    3>在视图消失时,让视图控制器注销第一响应者的身份
    - (void)viewDidDisappear:(BOOL)animated
    {
    [self canBecomeFirstResponder];
    }
    4>监听摇晃事件
    - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event
    {
    if (motion == UIEventSubtypeMotionShake) {
    NSLog(@"摇晃了,");
    }
    }
    4.关于微信的摇一摇实现思路:

    分析微信的功能的实现:
    1> 进入界面,貌似什么也没有发生;
    2> 摇一摇,咔嚓一声,出现转轮,貌似在干些什么
    3> 转轮消失,得到用户信息(网名,男女,距离你的距离)

    实现过程:
    1> 进入界面,利用CoreLocation(MapKit会具体讲解)定位用户当前的位置;

    2> 用户摇 -> 将用户的经纬度,用户账号,摇晃的时间,发送到微信的服务器;

    3> 后台处理(1),计算当前时间一定范围内,很难保证同一时间摇晃手机,可以有一个时间的误差,譬如10s
    摇晃手机的用户(有可能1个~10000个)
    4> 后台处理(2),如果用户过多,计算前10名~20名距离用户最近的摇晃用户的信息,产生列表,并发送给用户手机

    5> 用户接到数据后,使用UITableView展现数据

    6> 选中表格行,查看用户详细信息,决定是不是需要进一步的交流

  • 相关阅读:
    Linux下暴力破解工具Hydra详解
    LeetCode OJ--Evaluate Reverse Polish Notation
    LeetCode OJ--Valid Parentheses
    LeetCode OJ--Implement strStr()
    LeetCode OJ--Valid Palindrome
    LeetCode OJ--Remove Duplicates from Sorted List II *
    LeetCode OJ--Partition List
    LeetCode OJ--Reverse Linked List II
    LeetCode OJ--3Sum **
    LeetCode OJ--Search in Rotated Sorted Array II
  • 原文地址:https://www.cnblogs.com/yinqiang/p/3485439.html
Copyright © 2020-2023  润新知