iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 16
0

讓我們在 iOS 上實現九宮格解鎖吧!

? 隕石小故事

本期修刊,有興趣的可以回到上一次 D15 文章查看。只是我這邊再額外補充一個小故事。我原本已為這種手勢解鎖的一大亮點就是滑過的軌跡,沒想到還要做一個隱藏跟顯示軌跡的功能,但是隱藏軌跡我要怎麼知道我滑到什麼 QQ?

Overview

上一篇文章教了大家如何使用 UICollectionView 來製作出我們的 GesturePasswordView,並且可以透過滑動來選取 collectionView 中的項目。這一篇文章,讓我們來使用上一次中的 numbers 來做一些密碼設置吧!


實作

|建立 PasswordInputMode enum

首先我們先建立一個 PasswordInputModeenum,用來管理目前 GesturePasswordView 的輸入模式是「輸入密碼」還是「設置密碼」,並且宣告一個變數存儲他,我們可以藉由這個 mode 更改輸入模式:

接著我們新增一個 protocol 用來把我們設置以及輸入的結果透過 delegate 回傳給我們 ViewController:

接著我們新增一個 checkNumbers 的方法來判斷密碼設置是不是成功,或者是輸入的數字是否與密碼相匹配:

這邊我們簡單的判斷如果 numbers 的數目大於 4 碼才算是設置成功,並且取代為我們的 password。而密碼匹配這邊單純判斷 numbers 是否與 password 相同即可。

接著我們到我們有 GesturePasswordView 的 ViewController 中,設置 GesturePasswordView 的基本設置:

接著我們新增一個 UISwitch 用來切換密碼的輸入/設置模式,並且我們拉一個 Action 到程式碼中用來 GesturePasswordView 切換模式:

別忘了補上 GesturePasswordViewDelegate 需要遵循的方法,用這邊的兩個方法來將我們的手勢滑動的結果呈現出來。

最後讓我們看看實際執行的畫面:


Summary

那麼這次手勢解鎖的教學就到這邊了,我們結合上一次的教學,讓我們手勢滑動的過程結合密碼的設置以及解鎖,讓我們實現九宮格解鎖的過程。其中我們也能夠思考如何讓這個手勢解鎖的功能更完善,例如:密碼少於四碼是不是可以傳出一個 error 告知使用者,或是當沒有設置密碼時,但卻輸入密碼了,也要通知使用者還沒設置密碼等等...。這些想法都可以讓一個功能更近一步,並且越來越完善。


上一篇
D15 - 怎麼又滑起來了?滑出自己的手勢吧!
下一篇
D17 - __,請收下我的 QRCode!!
系列文
諸神黃昏下的 iOS 工程師31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言