A text input view for entering pin code.
- something...
SurfaceView is used to detect a user gesture. ItemView is Appearance. You can customize ItemView.
privateclassContainerItemView<T:UIView&ItemType>:UIView{varitemView:TprivateletsurfaceView:UIView=.init()privatevardidTapHandler:(()->())?}To create your customize ItemView, you create a view conforming to ItemType.
publicprotocolItemType{vartext:Character?{getset}varisHiddenCursor:Bool{getset}func set(appearance:Appearance)}About to set appearance.
publicstructAppearance{}
pinCodeInputView.set(appearance:)import PinCodeInputView// initialize
letpinCodeInputView:PinCodeInputView<ItemView>=.init(
digit:6,
itemSpacing:8,
itemFactory:{returnItemView()})
view.addSubview(pinCodeInputView)
// set appearance
pinCodeInputView.set(
appearance:.init(
itemSize:.init(width:44, height:68),
font:.systemFont(ofSize:28, weight:.bold),
textColor:.white,
backgroundColor:.darkGray,
cursorColor:.blue,
cornerRadius:8))
// text handling
pinCodeInputView.set(changeTextHandler:{ text inprint(text)})finalclassCustomItemView:UIView,ItemType{vartext:Character?varisHiddenCursor:Boolfunc set(appearance:Appearance){}
// ...
}letpinCodeInputView:PinCodeInputView<CustomItemView>=.init(
digit:6,
itemSpacing:8,
itemFactory:{returnCustomItemView()})For Installing with Carthage, and add it to your Cartfile.
github "shima11/PinCodeInputView"
$ carthage update
For installing with CocoaPods, and add it to your Podfile.
pod "PinCodeInputView"
$ pod update
Licence MIT


