手勢(shì)解鎖

手勢(shì)解鎖

界面搭建

  • 自定義控制器的view
  • 只要在view上面畫東西,就要用到drawRect方法
  • 加載圖片
  • 九宮格
    • 九宮格算法
    • awakeFromNib
    • initWithFrame
    • 添加內(nèi)部控件的方法
    • layoutSubviews布局子控件

選中按鈕的狀態(tài)

  • btn.userInteractionEnabled = NO;
  • tochesBegan:
    • 如果點(diǎn)在按鈕身上,讓按鈕成為選中狀態(tài)
      • 獲取當(dāng)前手指的點(diǎn)touches anyObject
      • locationInView
      • CGRectContainsPoint判斷一個(gè)點(diǎn)在不在一個(gè)rect當(dāng)中
        • 讓按鈕成為選中狀態(tài)
      • break,退出整個(gè)循環(huán)
  • touchesMove:
    • 點(diǎn)在按鈕身上,讓按鈕成為選中狀態(tài)
  • 抽方法
    • 按照功能模塊進(jìn)行劃分,一個(gè)方法對(duì)應(yīng)一個(gè)業(yè)務(wù)邏輯

連線

  • 從選中按鈕開始,把所選中按鈕的center連接起來(lái)
  • 有順序的把按鈕保存起來(lái)
  • drawRect
    • 創(chuàng)建一個(gè)路徑
    • 取出每一個(gè)選中的按鈕
    • 如果是第一個(gè)按鈕,設(shè)置為路徑的起點(diǎn);
    • 不是第一個(gè)添加一個(gè)線到圓心

添加一個(gè)線到當(dāng)前手指的點(diǎn)

  • 定義屬性,當(dāng)前手指所在的點(diǎn)

  • 連接樣式:圓角

  • 當(dāng)手指松開的時(shí)候,所有選中按鈕要取消選中狀態(tài)

  • 清空所有的連線

  • tag

    • 不要用tag去查找,它會(huì)去遍歷,耗性能
    • 可以用來(lái)區(qū)分順序,做標(biāo)記
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 我們已經(jīng)學(xué)習(xí)完了Quartz2D的一些基本的用法,在實(shí)際開發(fā)過(guò)程中,經(jīng)常使用Quartz2D,可以幫助我們少使用蘋...
    mkb2閱讀 1,353評(píng)論 0 13
  • 1.最終效果圖 2.思路: 2.1.首先把界面搭建起來(lái):以繪制九宮格的方式,在view上繪制出九個(gè)button 2...
    牛奈奈閱讀 515評(píng)論 0 1
  • 分析界面,當(dāng)手指在上面移動(dòng)時(shí),當(dāng)移動(dòng)到一個(gè)按鈕范圍內(nèi)當(dāng)中, 它會(huì)把按鈕給成為選中的狀態(tài).并且把第一個(gè)選中的按鈕當(dāng)做...
    陸號(hào)閱讀 379評(píng)論 0 0
  • ------------- 基本思路 -------------- 搭建界面,九宮格算法 處理按鈕選中狀態(tài) 按鈕之...
    _淺墨_閱讀 583評(píng)論 0 0
  • 先上個(gè)圖 很久沒(méi)有寫文章了,今天講下手勢(shì)解鎖,雖然現(xiàn)在用的不是很多,但是有的需求還是需要.手勢(shì)解鎖這樣的例子網(wǎng)上很...
    朱凱奇閱讀 12,396評(píng)論 6 31

友情鏈接更多精彩內(nèi)容