手势解锁

手势解锁

界面搭建

  • 自定义控制器的view
  • 只要在view上面画东西,就要用到drawRect方法
  • 加载图片
  • 九宫格
    • 九宫格算法
    • awakeFromNib
    • initWithFrame
    • 添加内部控件的方法
    • layoutSubviews布局子控件

选中按钮的状态

  • btn.userInteractionEnabled = NO;
  • tochesBegan:
    • 如果点在按钮身上,让按钮成为选中状态
      • 获取当前手指的点touches anyObject
      • locationInView
      • CGRectContainsPoint判断一个点在不在一个rect当中
        • 让按钮成为选中状态
      • break,退出整个循环
  • touchesMove:
    • 点在按钮身上,让按钮成为选中状态
  • 抽方法
    • 按照功能模块进行划分,一个方法对应一个业务逻辑

连线

  • 从选中按钮开始,把所选中按钮的center连接起来
  • 有顺序的把按钮保存起来
  • drawRect
    • 创建一个路径
    • 取出每一个选中的按钮
    • 如果是第一个按钮,设置为路径的起点;
    • 不是第一个添加一个线到圆心

添加一个线到当前手指的点

  • 定义属性,当前手指所在的点

  • 连接样式:圆角

  • 当手指松开的时候,所有选中按钮要取消选中状态

  • 清空所有的连线

  • tag

    • 不要用tag去查找,它会去遍历,耗性能
    • 可以用来区分顺序,做标记

你可能感兴趣的:(手势解锁)