JTSActionSheet 1.0.1

JTSActionSheet 1.0.1

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
Released最后发布2014年12月

Jared Sinclair维护。



  • 作者:
  • Jared Sinclair

JTSActionSheet是iOS 7上UIActionSheet的替代品,具有可自定义的字体和颜色,以及基于块的按钮动作。

屏幕截图

这两张屏幕截图都是使用JTSActionSheet制作而成的。我已经尽力模仿iOS 7中UIActionSheet的原生外观。

为什么使用这个?

如果您的项目有这些要求之一,JTSActionSheet将帮助您:

  • 您需要指定按钮和标题的自定义字体。
  • 您希望为所有内容选择自定义颜色:按钮标题、背景颜色等。
  • 您希望使用简单的基于块的API来进行按钮操作。
  • 您需要轻松地将某些边缘情况退回到原生外观。

令人惊讶的是,野外没有其他现成的解决方案。所以我造了一个。

不适用的场景

如果您需要以下内容,请勿使用此工具:

  • iOS 8功能,如UIAlertController提供的功能。
  • iPad支持。它可能在iPad上工作,但我强烈怀疑它看起来会不错。
  • 可滚动操作表(你知道,当有太多项目无法适应指定区域时,原生的UIActionSheet会变成可滚动的表视图)。
  • 横向支持(除非你不介意宽阔的水平拉伸)。

如何使用它

这很简单。步骤如下

  1. 创建一个JTSActionSheetTheme,可以从头开始创建或使用defaultTheme
  2. 设置代表您的按钮和取消按钮的JTSActionSheetItems
  3. 创建并显示一个新的JTSActionSheet

以下是一些示例代码,展示了所有内容

// 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];