An iOS library that automatically moves any UIView above the keyboard without requiring a UIScrollView.
IHKeyboardAvoiding is an iOS library that automatically repositions UI elements to keep them visible when the keyboard appears. It solves the common problem of keyboard occlusion by moving any specified UIView above the keyboard without requiring developers to embed their content in UIScrollViews. The library handles various keyboard types and orientations while maintaining compatibility with Auto Layout and traditional layout systems.
iOS developers building apps with text input forms, chat interfaces, or any UI where keyboard interaction can obscure content. It's particularly useful for developers who want a lightweight, non-scrollview-based solution.
Developers choose IHKeyboardAvoiding because it provides a simple, elegant alternative to UIScrollView-based keyboard avoidance solutions. Its ability to work with any UIView and its flexible trigger system offer more control than typical scrollview approaches, while avoiding common pitfalls like improper scrollback or multiple scrollview conflicts.
IHKeyboardAvoiding is an elegant solution for keeping any UIView visible when the keyboard is being shown - no UIScrollView required!
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Works directly with any UIView, eliminating the need for scroll view embeddings and avoiding common issues like improper scrollback or nested scrollview conflicts.
Can move any UIView—not just text fields—when the keyboard appears, offering flexibility for complex UIs with mixed interactive elements.
Supports iPhone keyboards, iPad docked/undocked/split keyboards, landscape/portrait orientations, and third-party keyboards, ensuring broad device compatibility.
Allows setting a separate trigger view to determine when the avoiding view moves, providing precise control over avoidance behavior based on specific UI elements.
Cannot be used directly with SwiftUI, requiring additional bridging code and making it less suitable for modern iOS projects adopting Apple's latest UI framework.
Requires placing configuration code in viewDidLoad or viewDidAppear, which can lead to bugs if not correctly timed, adding complexity compared to automatic solutions.
Lacks built-in support for keyboard toolbars, input accessory views, or reactive integrations, forcing developers to implement these separately or use heavier alternatives like IQKeyboardManager.