测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可证 | MIT |
发布最近发布 | 2016 年 2 月 |
由 Terry Worona,Terry Worona 维护。
一个用于通过下拉信息栏在全局范围内显示系统通知的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 来管理方向。对于目标 >= 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,了解如何创建自定义样式表的示例。