TWMessageBarManager 1.8.1

TWMessageBarManager 1.8.1

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最近发布2016 年 2 月

Terry WoronaTerry Worona 维护。




  • 作者:
  • Terry Worona

一个用于通过下拉信息栏在全局范围内显示系统通知的iOS管理器。

要求

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

功能

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

查看 变更日志 了解TWMessagBarManager功能的历史概述。

作者

Terry Worona

关注我 @terryworona

通过以下邮箱联系我 [email protected]

安装

CocoaPods 是安装 TWMessageBarManager 推荐的方法。

Pod方法

只需将以下行添加到您的 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 来管理方向。对于目标 >= iOS7,如果希望使用不等于 UIStatusBarStyleDefault 的 UIStatusBarStyle,只需调用:

- (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