學習記錄#120 App 的解鎖畫面(passcode)
Published in
5 min readJan 4, 2021
還記得小時候第一部卡通獅子王,看完一整個令人驚艷無法忘懷......
這次解鎖畫面主題就決定是獅子王。
範例: LINE 的解鎖畫面。
1.設定密碼圖示
@IBOutlet weak var passImageView2: UIImageView!@IBOutlet weak var passImageView1: UIImageView!@IBOutlet weak var passImageView3: UIImageView!@IBOutlet weak var passImageView4: UIImageView!
2.密碼輸入後的判讀
func checkPassCode(){if correctPassCode == guessPasscode {performSegue(withIdentifier: "correctPassCode", sender: self)} else {guessPasscode = []passImageView1.isHidden = truepassImageView2.isHidden = truepassImageView3.isHidden = truepassImageView4.isHidden = truelet alert = UIAlertController(title: "密碼錯誤", message: "輸入的密碼不正確!", preferredStyle: .alert)let action = UIAlertAction(title: "請重新輸入", style: .default) { (_) in}alert.addAction(action)present(alert, animated: true, completion: nil) }}
3.密碼輸入時的圖片顯示
func passcodeImage(){if guessPasscode.count == 0 {passImageView1.isHidden = truepassImageView2.isHidden = truepassImageView3.isHidden = truepassImageView4.isHidden = true} else if guessPasscode.count == 1 {passImageView1.isHidden = falsepassImageView2.isHidden = truepassImageView3.isHidden = truepassImageView4.isHidden = true} else if guessPasscode.count == 2 {passImageView1.isHidden = falsepassImageView2.isHidden = falsepassImageView3.isHidden = truepassImageView4.isHidden = true} else if guessPasscode.count == 3 {passImageView1.isHidden = falsepassImageView2.isHidden = falsepassImageView3.isHidden = falsepassImageView4.isHidden = true} else if guessPasscode.count == 4 {passImageView1.isHidden = falsepassImageView2.isHidden = falsepassImageView3.isHidden = falsepassImageView4.isHidden = falsecheckPassCode()}}
4.輸入密碼
@IBAction func numberBtn(_ sender: UIButton) {let button = sender.tagguessPasscode.append(button)passcodeImage()}
5.刪除密碼
@IBAction func deleteBtn(_ sender: UIButton) {if 0...3 ~= guessPasscode.count {guessPasscode.removeLast()passcodeImage() }}
成果
完整程式Github
參考資料:
最後來個獅子王經典-主題曲「生生不息Circle Of Life」