読者です 読者をやめる 読者になる 読者になる

しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

THPinViewControllerでパスコードロックを簡単実装

THPinViewControllerというライブラリを使ってパスコードロック画面を簡単に実装してみようと思います。

github.com

インストールはCocoaPodsを使います。

pod 'THPinViewController'

Objective-cのライブラリなのでBridging Headerでimportします。

#import "THPinViewController.h"

使い方は以下の通りです。
THPinViewControllerがパスコード画面なので、それを表示するだけです。
必須のdelegateは以下の3つで、パスコードの長さ・パスコードが合ってるかどうか・ユーザーのリトライを許可するかを制御できます。

class ViewController: UIViewController {
    override func viewDidAppear(animated: Bool) {
        let vc = THPinViewController(delegate: self)
        presentViewController(vc, animated: true, completion: nil)
    }
}

extension ViewController: THPinViewControllerDelegate {
    func pinLengthForPinViewController(pinViewController: THPinViewController!) -> UInt {
        return 4
    }
    
    func pinViewController(pinViewController: THPinViewController!, isPinValid pin: String!) -> Bool {
        return true
    }
    
    func userCanRetryInPinViewController(pinViewController: THPinViewController!) -> Bool {
        return true
    }
}

f:id:llcc:20160515164128p:plain

タイトルや背景色なども変える事ができます。

let vc = THPinViewController(delegate: self)
vc.promptColor = UIColor.whiteColor()
vc.promptTitle = "パスコードを入力して下さい"
vc.backgroundColor = UIColor.lightGrayColor()

数字をボタンはviewのtintColorを変更する事で変えれます。

vc.view.tintColor = UIColor.brownColor()