An iOS library to quickly present picker views (string, date, distance, custom) as action sheets or popovers.
ActionSheetPicker-3.0 is an open-source iOS library that provides ready-to-use picker controls presented as action sheets or popovers. It solves the problem of quickly implementing user selection interfaces for strings, dates, distances, and custom data without writing repetitive delegate code. Developers can integrate it to present intuitive picker modals that match native iOS behavior.
iOS developers (using Objective-C or Swift) who need to add picker selection interfaces to their apps, particularly those looking for a drop-in solution that works across iPhone and iPad with minimal setup.
Developers choose ActionSheetPicker-3.0 because it offers a battle-tested, easy-to-integrate library with multiple picker types out of the box. Its extensive iOS version support (from iOS 5.1.1 onward) and active maintenance make it a reliable choice over building custom picker implementations from scratch.
Quickly reproduce the dropdown UIPickerView / ActionSheet functionality on iOS.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports iOS from 5.1.1 through iOS 13 and beyond, as stated in the README, ensuring long-term usability for legacy and current projects.
Includes ActionSheetStringPicker, ActionSheetDatePicker, ActionSheetDistancePicker, and ActionSheetCustomPicker, covering common selection scenarios without extra coding.
Automatically adapts to iPhone (UIActionSheet) and iPad (UIPopoverController), providing a native experience across devices as highlighted in the overview.
Uses callback blocks instead of delegates, shown in the QuickStart examples, reducing boilerplate code for quick implementation.
The maintainer has publicly sought help for future support in issue #348, raising concerns about long-term viability and updates for newer iOS versions.
Primarily built for UIKit, making integration with modern SwiftUI projects cumbersome and requiring additional bridging code.
Advanced UI customizations, like toolbar buttons or blur effects, require referring to a separate BASIC-USAGE.md file, adding setup effort for non-basic use cases.