测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可证 | MIT |
发布最后发布 | 2017年3月 |
由 Primoz990 维护。
这是一份基于 terryworona/TWMessageBarManager 的分支,进行了设计和行为上的变更。
一个通过下拉消息栏展示系统通知的 iOS 管理器。
有关 TWMessagBarManager 功能历史的概述,请参阅 变更日志。
Terry Worona
关注我的推特 @terryworona
给我发邮件至 [email protected]
CocoaPods 是推荐安装 TWMessageBarManager 的方法。
只需将以下行添加到您的 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];
管理器使用自定义的 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 以了解如何创建自定义样式表的示例。