Lightweight controller to keep your inputs visible when the keyboard is presented.
This project is maintained by Tapptitude, a mobile app development agency specialized in building high-quality iOS and Android mobile apps, for startups and brands alike. A lively team of skilled app developers and app designers based in Europe, we provide full-stack mobile app development services to entrepreneurs looking to innovate on mobile.
- Lightweight & very easy to integrate
- Works with any inputs or keyboard types
- Automatic keyboard dismiss when tapping outside of the input
- Ignore views that trigger dimissal
- Custom additional distance from the keyboard
- Add any view to be visible
- Custom animation block when the keyboard is presented.
- iOS 8.0+
- Xcode 7.3+
CocoaPods
Swift 4.0, 3.X
pod 'TTInputVisibilityController'
Carthage
github "tapptitude/TTInputVisibilityController"
Manually
Add the contents of TTInputVisibilityController files to your project.
You can add the keyboardVisibilityController to the view property of any ViewController.
override func viewDidLoad() {
super.viewDidLoad()
self.view.addInputVisibilityController()
}
You can add extra space above the keyboard by setting the swift extraSpaceAboveKeyboard
property.
If you want some view to not trigger the dismissal of the keyboard(e.g. a login button) you can set
inputVisibilityController.dismissKeyboardTouchRecognizer?.ignoreViews = [myLoginButton]
You can also provide a block to be called when the keyboard is dismissed or presented, providing you the translation value. (e.g animating some constraints)
inputVisibilityController.additionallAnimatioBlock = { [weak self] translation in
self?.loginButtonBottomConstraint.constant = initialConstraint + translation
self?.view.layoutIfNeeded()
}
Feel free to Fork, submit Pull Requests or send us your feedback and suggestions!
TTInputVisibilityController is available under the MIT license. See the LICENSE file for more info.