A UITextField and UITextView subclass implementing the Float Label Pattern for improved iOS form UX.
JVFloatLabeledTextField is an iOS UI component library that implements the Float Label Pattern for text input fields. It solves the mobile form UX problem of disappearing placeholders by animating them into persistent floating labels above the field once the user starts typing, providing continuous context.
iOS developers building forms in native UIKit applications who want to improve user experience with the Float Label Pattern.
It provides the first and most referenced native iOS implementation of this popular UX pattern, with straightforward integration via CocoaPods, Carthage, or Swift Package Manager.
UITextField subclass with floating labels - inspired by Matt D. Smith's design: http://dribbble.com/shots/1254439--GIF-Mobile-Form-Interaction?list=users
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
As the original iOS library for the Float Label Pattern, it has a proven track record and is widely referenced, with credits to Matt D. Smith's design and numerous ports listed in the README.
Provides subclasses for both UITextField and UITextView, covering common text input needs in iOS apps, as highlighted in the README's feature list.
Supports integration via CocoaPods, Carthage, and Swift Package Manager, with clear setup instructions in the README, simplifying adoption in various project setups.
Closely implements the Float Label Pattern to solve mobile form usability issues, with references to original design sources and Material Design guidelines in the README.
Does not natively support SwiftUI, requiring additional bridging code or workarounds for modern iOS projects using Apple's newer UI framework.
Focuses solely on the float label animation, lacking built-in features like validation, error states, or advanced customization, which may necessitate extra development effort.
Requires adding a library dependency and importing headers, which could be cumbersome for very simple projects or those aiming to minimize third-party code.