Primoz990-TWMessageBarManager 1.8.4

Primoz990-TWMessageBarManager 1.8.4

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2017年3月

Primoz990 维护。




  • 作者
  • Primoz990

这是一份基于 terryworona/TWMessageBarManager 的分支,进行了设计和行为上的变更。

TWMessageBarManager

一个通过下拉消息栏展示系统通知的 iOS 管理器。

要求

  • 需要 iOS 6.0 或更高版本
  • 需要自动引用计数(ARC)

功能

  • 可插入的单例管理器,支持所有设备。
  • 简单易用的协议和回调。
  • 支持横竖屏。
  • 高度可定制。

有关 TWMessagBarManager 功能历史的概述,请参阅 变更日志

作者

Terry Worona

关注我的推特 @terryworona

给我发邮件至 [email protected]

安装

CocoaPods 是推荐安装 TWMessageBarManager 的方法。

使用 CocoaPods 方法

只需将以下行添加到您的 Podfile 文件中:

pod 'TWMessageBarManager'

您的 podfile 应该看起来像这样:

platform :ios, '6.0'
pod 'TWMessageBarManager'

旧方法

使用 TWMessageBarManager 的最简单方法是将 /Classes 文件夹拖放到您的 Xcode 5 项目中。还建议您将 /Classes 文件夹重命名为更具描述性的名称(例如 "TWMessageBarManager")。

用法

调用管理器

作为单例类,可以通过 sharedInstance 函数从您的应用程序的任何位置访问管理器。

[TWMessageBarManager sharedInstance]

展示基本消息

所有消息都可以通过 showMessageWithTitle:description:type: 展示。其他参数包括持续时间以及用户点击时的回调块。

基本消息

[[TWMessageBarManager sharedInstance] showMessageWithTitle:@"Account Updated!"
                                               description:@"Your account was successfully updated."
                                                      type:TWMessageBarMessageTypeSuccess];

默认显示时长为 3秒。您可以通过提供额外的参数来覆盖此值。

[[TWMessageBarManager sharedInstance] showMessageWithTitle:@"Account Updated!"
                                               description:@"Your account was successfully updated."
                                                      type:TWMessageBarMessageTypeSuccess
                                                  duration:6.0];

隐藏消息

目前无法按实例隐藏或取消消息。相反,必须一次性取消所有消息。此操作可能带有动画,也可能不带动画。

[[TWMessageBarManager sharedInstance] hideAllAnimated:YES]; // animated

[[TWMessageBarManager sharedInstance] hideAll]; // non-animated

回调

默认情况下,如果用户在消息出现时触摸消息,则消息将自动消失。要通知触摸,只需提供回调块即可。

[[TWMessageBarManager sharedInstance] showMessageWithTitle:@"Account Updated!"
                                               description:@"Your account was successfully updated."
                                                      type:TWMessageBarMessageTypeSuccess callback:^{
                                                          NSLog(@"Message bar tapped!");
}];

队列

管理器后端有一个队列,可以处理无限数量的顺序请求。您可以在栈上堆积尽可能多的消息,它们将依次显示。

[[TWMessageBarManager sharedInstance] showMessageWithTitle:@"Message 1"
                                               description:@"Description 1"
                                                      type:TWMessageBarMessageTypeSuccess];

[[TWMessageBarManager sharedInstance] showMessageWithTitle:@"Message 2"
                                               description:@"Description 2"
                                                      type:TWMessageBarMessageTypeError];

[[TWMessageBarManager sharedInstance] showMessageWithTitle:@"Message 3"
                                               description:@"Description 3"
                                                      type:TWMessageBarMessageTypeInfo];

UIStatusBarStyle

管理器使用自定义的 UIWindow 和 UIViewController 来管理方向。对于 targets >= iOS7,如果想要其他 UIStatusBarStyle(不同于 UIStatusBarStyleDefault),只需调用:

- (void)showMessageWithTitle:(NSString *)title description:(NSString *)description type:(TWMessageBarMessageType)type statusBarStyle:(UIStatusBarStyle)statusBarStyle callback:(void (^)())callback;

如果使用自定义 UIStatusBarStyle 显示消息,在消失后,状态栏将恢复到系统样式(当前 UIVIewController 的样式)。

如果您希望在演示期间完全隐藏状态栏,可以通过以下方式进行:

- (void)showMessageWithTitle:(NSString *)title description:(NSString *)description type:(TWMessageBarMessageType)type statusBarHidden:(BOOL)statusBarHidden callback:(void (^)())callback;

自定义

符合 TWMessageBarStyleSheet 协议的对象定义了消息栏的外观和感觉。

@required

- (UIColor *)backgroundColorForMessageType:(TWMessageBarMessageType)type;
- (UIColor *)strokeColorForMessageType:(TWMessageBarMessageType)type;
- (UIImage *)iconImageForMessageType:(TWMessageBarMessageType)type;

@optional

- (UIFont *)titleFontForMessageType:(TWMessageBarMessageType)type;
- (UIFont *)descriptionFontForMessageType:(TWMessageBarMessageType)type;
- (UIColor *)titleColorForMessageType:(TWMessageBarMessageType)type;
- (UIColor *)descriptionColorForMessageType:(TWMessageBarMessageType)type;

如果未提供样式表,则在初始化时提供默认类。要自定义消息栏的外观和感觉,只需通过以下方式提供符合 TWMessageBarStyleSheet 协议的对象:

@property (nonatomic, weak) id<TWMessageBarStyleSheet> styleSheet;

请参阅 TWAppDelegateDemoStyleSheet 以了解如何创建自定义样式表的示例。

许可

使用遵循 MIT 许可。请参阅 LICENSE 获取详细信息。