Now I fixed most of the things and merge PR' (thanks to ).
I did much work to support this library from iOS 5. (and till iOS 13 and we keep going) π
I still need help with the future support of this repo. If you are interested to help - please drop a comment into issue #348 π
Regards, Petr Korolev
- Overview
- QuickStart
- Installation
- Example Projects
- Screenshots
- Apps using this library
- Maintainer and Contributor
- Contributing
- Credits
- Contributors
Please welcome: ActionSheetPicker-3.0!
Well, that's how it started. Now, the following is more accurate:
- iPhone/iPod ActionSheetPicker = ActionSheetPicker = A Picker + UIActionSheet
- iPad ActionSheetPicker = A Picker + UIPopoverController
Easily present an ActionSheet with a PickerView, allowing the user to select from a number of immutable options.
- Spawn pickers with convenience function - delegate or reference not required. Just provide a target/action callback.
- Add buttons to UIToolbar for quick selection (see ActionSheetDatePicker below)
- Delegate protocol available for more control
- Universal (iPhone/iPod/iPad)
There are 4 distinct picker view options:
ActionSheetStringPickerActionSheetDistancePickerActionSheetDatePickerActionSheetCustomPicker
We'll focus here on how to use the ActionSheetStringPicker since it's most likely the one you want to use.
For detailed info about customizations, please look BASIC USAGE
- Custom buttons view
- Custom buttons callbacks
- Action by clicking outside of the picker
- Background color and blur effect
- Other customizations
For detailed examples, please check Example Projects in this repo.
ActionSheetMultipleStringPicker.show(withTitle: "Multiple String Picker", rows: [
["One", "Two", "A lot"],
["Many", "Many more", "Infinite"]
], initialSelection: [2, 2], doneBlock: {
picker, indexes, values in
print("values = \(values)")
print("indexes = \(indexes)")
print("picker = \(picker)")
return
}, cancel: { ActionMultipleStringCancelBlock in return }, origin: sender)// Inside a IBAction method:
// Create an array of strings you want to show in the picker:
NSArray *colors = @[@"Red", @"Green", @"Blue", @"Orange"];
// Done block:
ActionStringDoneBlock done = ^(ActionSheetStringPicker *picker, NSInteger selectedIndex, id selectedValue) {
NSLog(@"Picker: %@", picker);
NSLog(@"Selected Index: %@", @(selectedIndex));
NSLog(@"Selected Value: %@", selectedValue);
};
// cancel block:
ActionStringCancelBlock cancel = ^(ActionSheetStringPicker *picker) {
NSLog(@"Block Picker Canceled");
};
// Run!
[ActionSheetStringPicker showPickerWithTitle:@"Select a Color" rows:colors initialSelection:0 doneBlock:done cancelBlock:cancel origin:sender];
pod 'ActionSheetPicker-3.0'(iOS 5.1.1-13.x compatible!)
CocoaPods is a dependency manager for Cocoa projects.
You can install it with the following command:
gem install cocoapodsTo integrate ActionSheetPicker-3.0 into your Xcode project using CocoaPods, specify it in your Podfile:
source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!
pod 'ActionSheetPicker-3.0'Then, run the following command:
pod installTo import pod you should add string:
- For
Obj-cprojects:
#import "ActionSheetPicker.h"- For
Swiftprojects:
import ActionSheetPicker_3_0Carthage is a decentralized dependency manager that automates the process of adding frameworks to your Cocoa application.
You can install Carthage with Homebrew using the following command:
brew update
brew install carthageTo integrate ActionSheetPicker-3.0 into your Xcode project using Carthage, specify it in your Cartfile:
github "skywinder/ActionSheetPicker-3.0"
The Swift Package Manager is a tool for automating the distribution of Swift code and is integrated into Xcode and the Swift compiler.
If you are using Xcode 11 or later:
- Click
File Swift PackagesAdd Package Dependency...- Specify the git URL for ActionSheetPicker-3.0.
https://github.com/skywinder/ActionSheetPicker-3.0If you prefer not to use either of the aforementioned dependency managers, you can integrate ActionSheetPicker-3.0 into your project manually.
The "old school" way is manually added to your project all from Pickers folder.
- Add ActionSheetPicker-3.0 as a submodule by opening the Terminal,
cd-ing into your top-level project directory, and entering the following command:
git submodule add https://github.com/skywinder/ActionSheetPicker-3.0.git- Open the
ActionSheetPicker-3.0folder, and dragCoreActionSheetPicker.xcodeprojinto the file navigator of your app project. - In Xcode, navigate to the target configuration window by clicking on the blue project icon, and selecting the application target under the "Targets" heading in the sidebar.
- Ensure that the deployment target of CoreActionSheetPicker.framework matches that of the application target.
- In the tab bar at the top of that window, open the "Build Phases" panel.
- Expand the "Target Dependencies" group, and add
CoreActionSheetPicker.framework. - Click on the
+button at the top left of the panel and select "New Copy Files Phase". Rename this new phase to "Copy Frameworks", set the "Destination" to "Frameworks", and addCoreActionSheetPicker.framework.
open ActionSheetPicker-3.0.xcworkspace
Here is 3 projects:
- CoreActionSheetPicker - all picker files combined in one Framework. (available since
iOS 8) - ActionSheetPicker - modern and descriptive Obj-C project with many examples.
- Swift-Example - example, written on Swift. (only with basic 3 Pickers examples, for all examples please run
ActionSheetPickerproject)
If you've used this project in a live app, please let me know! Nothing makes me happier than seeing someone else take my work and go wild with it.
If you are using ActionSheetPicker-3.0 in your app or know of an app that uses it, please add it to this list.
- Petr Korolev (update to iOS 7 and iOS 8, implementing new pickers, community support). I did much work to support this library from iOS 5. (and till iOS 13 and we keep going π).
Now I fixed most of the things and merge PR' (thanks to !).
I still need help with the future support of this repo. If you are interested to help - please drop a comment into issue #348 π
- Create an issue to discuss your idea
- Fork it https://github.com/skywinder/ActionSheetPicker-3.0/fork
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request
Bug reports, feature requests, patches, well-wishes, and rap demo tapes are always welcome.
We have a Discord channel where discuss about new ideas and implementation. Feel free to join and discuss with us!
You can join our Discord using this link.
-
ActionSheetPicker was originally created by Tim Cinel (@TimCinel) Since the Tim's repo is not support iOS 7+, I forked from his repo and implement iOS 7-8 support, and also a bunch of UI fixes, crash-fixes, and different customization abilities.
-
And most of all, thanks to ActionSheetPicker-3.0's growing list of contributors.
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!





