SSSnackbar 0.1.2

SSSnackbar 0.1.2

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布上次发布2015年10月

Sam Stone 维护。




作者

Sam Stone, [email protected]

关于

Snackbar 是 Android UI 组件,可以向用户展示时尚的操作提示。谷歌也在其一些 iOS 应用中使用他们自己的 iOS Snackbar 实现,例如 Gmail。

Snackbar 有助于向用户显示简短的信息,然后用户可以采取行动。常见的使用模式是在用户执行某些破坏性操作后显示 Snackbar,为用户提供一段宽限期,在宽限期之内,用户可以撤销该操作。

这个用例在 iOS Google Gmail 应用中得到了演示:[查看 Gmail 实现](https://camo.githubusercontent.com/3a17919e0ea41d69c9eb6e1d10fbd95ff2aac336/687474703a2f2f692e696d6775722e636f6d2f786e6c516775512e676966)。

以下是此项目实现的 Snackbar 的演示:[查看 SSSnackbar 实现](https://camo.githubusercontent.com/94ffcc0ce91da9f3bb4e16baf2a962c63be90920/687474703a2f2f692e696d6775722e636f6d2f39764a38474f4f2e676966)。

示例项目

提供的示例项目提供了 SSSnackbar 的演示。它显示一个包含购物清单的 tableView。当从购物清单中删除项目时,会显示一个 Snackbar,允许用户撤销该删除。

购物清单分为两部分

  • 正常示例:从此部分删除项目展示了 Snackbar 的标准用法,其中的动作块(在用户按下 Snackbar 的按钮时执行)在主线程上执行。
  • 长时间运行的操作示例:从此部分删除项目展示了使用具有长时间运行动作块的 Snackbar 对象的用法,该动作块在后台执行。

要运行示例项目,请克隆仓库,然后首先从 Example 目录运行 pod install

安装

此项目可通过 CocoaPods 获取。为了安装,请在 Podfile 中添加 "SSSnackbar"

您还可以通过下载 SSSnumentar.h 和 SSSnumentar.m 并将它们添加到您的项目中手动集成 SSSnumentar。

用法

此项目包含一个类:SSSnackbar

SSSnackbar 对象不能在屏幕上“堆叠”。如果在屏幕上已经显示了一个Snackbar,再显示另一个,当前的Snackbar将被替换,并且它将表现得好像已经按照配置的长度时间显示后已被取消。

发送给 SSSnackbar 对象的所有消息都应该从主线程发送。

创建 SSSnackbar 实例。

可以使用以下方法创建新的Snackbar对象

- (instancetype)initWithMessage:(NSString *)message
                 actionText:(NSString *)actionText
                   duration:(NSTimeInterval)duration
                actionBlock:(void (^)(SSSnackbar *sender))actionBlock
             dismissalBlock:(void (^)(SSSnackbar *sender))dismissalBlock

+ (instancetype)snackbarWithMessage:(NSString *)message
                     actionText:(NSString *)actionText
                       duration:(NSTimeInterval)duration
                    actionBlock:(void (^)(SSSnackbar *sender))actionBlock
                 dismissalBlock:(void (^)(SSSnackbar *sender))dismissalBlock 
  • message 是要在Snackbar的文本标签上显示的文本。
  • actionText 是用作Snackbar按钮标题的文本。
  • duration 是Snackbar应在屏幕上保持显示的时长。
  • actionBlock 是当用户按下Snackbar按钮时调用的代码块。除非配置了Snackbar对象,否则此代码块将在主线程上执行。
  • dismissalBlock 是当从屏幕删除Snackbar时调用的代码块,而没有按下其动作按钮。这可以用来完成用户已经执行的操作,因为这时用户的撤销更改时间已经结束了。

配置 SSSnackbar 实例。

使用初始化方法设置的属性可以在对象创建后更改,但在Snackbar在屏幕上显示后不应更改。

默认情况下,actionBlock 在主线程执行。如果代码块将花费很长时间执行,则可以通过将Snackbar的 actionIsLongRunning 属性设置为 YES 来在后台线程上运行。

在这种情况下,代码块将在后台线程执行,并使用 UIActivityIndicatorView 替换Snackbar的动作按钮。

展示 SSSnackbar 实例给用户。

创建和配置后,可以通过发送 show 消息来将Snackbar对象显示在屏幕上。

取消 SSSnackbar 实例。

Snackbar对象会在保持屏幕上显示的时长后自动消失,或者如果用户按下Snackbar按钮并且Snackbar的动作代码块已执行完毕。

有时需要手动取消一个Snackbar对象。这可以通过向对象发送 dismissdismissAnimated:(BOOL)animated 消息来完成。