一个 iOS 管理器,用于通过下拉消息栏显示全局通知。
Terry Worona
给我发推文 @terryworona
给我发邮件至 [email protected]
CocoaPods 是推荐安装 MessageBarManager 的方法。
只需将以下行添加到您的 Podfile
pod 'MessageBarManager'
您的 podfile 应该看起来像这样
platform :ios, '6.1'
pod 'JBChartView', '~> 1.1.0'
使用 MessageBarManager 的最简单方法是将其 /Classes 文件夹拖到您的 Xcode 5 项目中。还建议您将 /Classes 文件夹重命名为更具描述性的名称(例如 "MessageBarManager")。
作为单例类,您可以通过 + sharedInstance 函数从应用程序内的任何地方访问管理器
[MessageBarManager sharedInstance]
所有消息都可以通过 showMessageWithTitle:description:type: 进行显示。其他参数包括持续时间和回调块,以便在用户触摸时通知。
基本消息
[[MessageBarManager sharedInstance] showMessageWithTitle:@"Account Updated!"
description:@"Your account was successfully updated."
type:MessageBarMessageTypeSuccess];
默认显示持续时间为 3 秒。您可以通过提供额外的参数来覆盖此值
[[MessageBarManager sharedInstance] showMessageWithTitle:@"Account Updated!"
description:@"Your account was successfully updated."
type:MessageBarMessageTypeSuccess
forDuration:6.0];
默认情况下,如果用户 触摸 消息时正在显示,它会自动消失。为了通知触摸,只需提供一个回调块
[[MessageBarManager sharedInstance] showMessageWithTitle:@"Account Updated!"
description:@"Your account was successfully updated."
type:MessageBarMessageTypeSuccess callback:^{
NSLog(@"Message bar tapped!");
}];
此管理器后端有一个可以处理无限数量的顺序请求的队列。您可以在堆栈上堆叠尽可能多的消息,并且它们将依次显示
[[MessageBarManager sharedInstance] showMessageWithTitle:@"Message 1"
description:@"Description 1"
type:MessageBarMessageTypeSuccess];
[[MessageBarManager sharedInstance] showMessageWithTitle:@"Message 2"
description:@"Description 2"
type:MessageBarMessageTypeError];
[[MessageBarManager sharedInstance] showMessageWithTitle:@"Message 3"
description:@"Description 3"
type:MessageBarMessageTypeInfo];
MessageBarStyleSheet 包含与背景和线条颜色以及图标图像相关的功能。所有这些功能都可以被继承和/或直接修改来自定义消息栏的外观和感觉。
+ (UIColor*)backgroundColorForMessageType:(MessageBarMessageType)type;
+ (UIColor*)strokeColorForMessageType:(MessageBarMessageType)type;
+ (UIImage*)iconImageForMessageType:(MessageBarMessageType)type;
将新类型添加到在 MessageBarManager.h 中找到的 typedef。
typedef enum {
MessageBarMessageTypeError,
MessageBarMessageTypeSuccess,
MessageBarMessageTypeInfo,
MessageBarMessageTypeWarning // new type for warnings
} MessageBarMessageType;
将新颜色和图标添加到样式表中
+ (UIColor*)backgroundColorForMessageType:(MessageBarMessageType)type
{
UIColor *backgroundColor = nil;
switch (type) {
…
case MessageBarMessageTypeWarning:
backgroundColor = [UIColor grayColor]; // warnings to be gray background
break;
default:
break;
}
return backgroundColor;
}
+ (UIColor*)strokeColorForMessageType:(MessageBarMessageType)type
{
UIColor *strokeColor = nil;
switch (type) {
…
case MessageBarMessageTypeWarning:
strokeColor = [UIColor darkGrayColor];
break;
default:
break;
}
return strokeColor;
}
+ (UIImage*)iconImageForMessageType:(MessageBarMessageType)type
{
UIImage *iconImage = nil;
switch (type) {
…
case MessageBarMessageTypeWarning:
iconImage = [UIImage imageNamed:@"icon-warning.png"]; // warning icon
break;
default:
break;
}
return iconImage;
}
使用消息类型显示新消息
[[MessageBarManager sharedInstance] showMessageWithTitle:@"Account Warning!"
description:@"Your account has expired!"
type:MessageBarMessageTypeWarning];