A customizable, closure-driven UIPickerView drop-in solution with animations and rotation support for iOS.
McPicker is an open-source iOS library that provides a customizable, closure-driven drop-in replacement for UIPickerView. It simplifies adding interactive picker controls with animations, rotation support, and multiple presentation styles, reducing the boilerplate code needed for native picker implementations.
iOS developers building Swift applications who need to implement customizable picker interfaces without dealing with UIPickerView's low-level complexities.
Developers choose McPicker because it offers a ready-to-use, highly customizable picker solution with a clean closure-based API, multiple presentation options (including popover on iPhone), and built-in animation and rotation handling, saving development time.
McPicker is a customizable, closure driven UIPickerView drop-in solution with animations that is rotation ready.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses Swift closures for selection handling, making code concise and readable compared to UIPickerView's delegate patterns, as shown in the short syntax examples.
Supports slide-up, popover on iPhone (a UIKit limitation workaround), and embedded input views via McTextField, offering versatility beyond native pickers.
Allows deep customization of labels, toolbar items, colors, fonts, and background transparency, detailed in the README's customization section.
Eliminates manual configuration for device orientation changes, ensuring pickers adapt seamlessly without extra code.
Tied to UIKit, making it unsuitable for SwiftUI projects without additional bridging code and limiting adoption in modern iOS development.
Only accepts string arrays for picker data, lacking built-in support for custom objects or dynamic data binding, which restricts complex use cases.
Requires CocoaPods installation and careful version management for different Swift compilers, as noted in the README, adding complexity and potential migration issues.