Skip to content

Replacement for UIActionSheet on iOS 7, with customizable fonts and colors, and block-based actions.

License

Notifications You must be signed in to change notification settings

dlavlinskyi/JTSActionSheet

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JTSActionSheet

Replacement for UIActionSheet on iOS 7, with customizable fonts and colors, and block-based actions.

Screenshots

Both of these screenshots were made with JTSActionSheet. I've taken great pains to mimic the native look of UIActionSheet on iOS 7 where possible.

Why Use This?

JTSActionSheet will help you if your project has any of these requirements:

  • You need to specify custom fonts for buttons and titles.
  • You would like to choose custom colors for everything: button titles, background colors, etc.
  • You want to use a simple block-based API for button actions.
  • You need to easily drop back to a native appearance for some edge cases.

Surprisingly, there aren't any other ready-made solutions available in the wild. So I made one.

When Not To Use This

Don't use this if you need:

  • iOS 8 features like those provided by UIAlertController.
  • iPad support. It might work on the iPad, but I highly doubt it will look good.
  • Scrollable action sheets (you know, how the native UIActionSheet becomes a scrollable table view when there are too many items to fit in a given area).
  • Landscape support (unless you don't mind a wide horizontal stretch).

How to Use This

It's pretty easy. The steps are:

  1. Create a JTSActionSheetTheme, either from scratch or with defaultTheme.
  2. Setup JTSActionSheetItems representing your buttons and cancel button.
  3. Create and show a new JTSActionSheet.

Here is some sample code showing it all together:

// Import this

#import "JTSActionSheet.h"

[...]

// Create a theme

JTSActionSheetTheme *theme = [JTSActionSheetTheme defaultTheme];


// Setup your buttons

JTSActionSheetItem *buyAll = [JTSActionSheetItem itemWithTitle:@"Buy All" action:^{
    // do stuff
} isDestructive:NO];

JTSActionSheetItem *deleteAll = [JTSActionSheetItem itemWithTitle:@"Delete All" action:^{
    // do stuff
} isDestructive:YES];

JTSActionSheetItem *cancel = [JTSActionSheetItem itemWithTitle:@"Cancel" action:^{
    // respond to cancellation
    // Action blocks can be nil if you want.
} isDestructive:NO];


// Create & Show an Action Sheet

JTSActionSheet *sheet = [[JTSActionSheet alloc] initWithTheme:theme
                                                        title:@"Your Options"
                                                  actionItems:@[buyAll, deleteAll]
                                                   cancelItem:cancel];
[sheet showInView:self.view];

About

Replacement for UIActionSheet on iOS 7, with customizable fonts and colors, and block-based actions.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Objective-C 98.3%
  • Ruby 1.7%