Simple and elegant UI component for input PIN
VKPinCodeView
VKPinCodeView is simple and elegant UI component for input PIN. You can easily customise appearance and get auto fill (OTP) iOS 12 feature right from the box.
Features
- [x] Variable PIN length
- [x] Underline and Border styles
- [x] Customizable appearence
- [x] Error status with / without shake animation
- [x] Highlight selected entry with / without animation
- [x] Callbacks (begin editing, change code, complete)
- [x] Custom input validation
Preview
Installation
CocoaPods
CocoaPods is a dependency manager for Cocoa projects. For usage and installation instructions, visit their website. To integrate VKPinCodeView
into your Xcode project using CocoaPods, specify it in your Podfile
:
pod 'VKPinCodeView'
Carthage
Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks. To integrate VKPinCodeView
into your Xcode project using Carthage, specify it in your Cartfile
:
github "Sunspension/VKPinCodeView"
Manually
If you still do not use any of dependency managers, just ask yourself why you still do this?
Minimal Setup
override func viewDidLoad() {
super.viewDidLoad()
let pinView = VKPinCodeView(style: VKEntryViewStyle.border)
pinView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(pinView)
pinView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 40).isActive = true
pinView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -40).isActive = true
pinView.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
pinView.heightAnchor.constraint(equalToConstant: 50).isActive = true
pinView.becomeFirstResponder()
}
Contribute
VKPinCodeView is open to contribute, see contribution notes.
- If you want to contribute, submit a pull request
- If you found a bug, open an issue.
- If you need help with a feature or need to disscuss something else please contact me vladimir.kokhanevich@gmail.com
Requirements
- iOS 9.0+
- Xcode 10.1+
- Swift 5.0
Author
Made with :heart: by Vladimir Kokhanevich