测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可证 | MIT |
发布最新发布 | 2015年7月 |
由 Thibault Carpentier 维护。
依赖 | |
HexColors | ~> 2.3.0 |
FXBlurView | ~> 1.6.1 |
这个库提供了一个 易于使用且完全可定制的类,用于在屏幕顶部/底部/中间显示通知视图。
消息横幅分为4种不同类型:错误、警告、消息和成功。
每种不同类型的横幅都可以有不同的外观和完全可定制的功能。(有关配置部分)
每个横幅都可以显示一个 标题、一个 副标题、一个 图片和一个 按钮。
项目使用HexColors和FXBlurView。您还需要手动安装它们。请参阅它们GitHub页面上的安装要求。
下载Message banner项目。您可以直接从他的GitHub页面下载
或者通过命令行
$ git clone https://github.com/Loadex/Message-Banner.git
将MESSAGE BANNER文件夹拖放到您的项目中。
将导出到将使用它的类的顶部。
#import <MBLMessageBanner.h>
要显示基本通知,可以使用以下之一调用
[MBLMessageBanner showMessageBannerInViewController:aViewController
title:@"aTitle"
subtitle:@"aSubtitle"];
// ------------------------- OR -------------------------
[MBLMessageBanner showMessageBannerInViewController:self
title:@"aTitle"
subtitle:@"aSubtitle"
image:[UIImage imageNamed:@"icon.png"]
type:MBLMessageBannerTypeMessage
duration:MBLMessageBannerDurationDefault
userDissmissedCallback:^(MBLMessageBannerView *bannerView) {
return;
}
buttonTitle:@"BtnTitile"
userPressedButtonCallback:^(MBLMessageBannerView *banner) {
return;
}
atPosition:MBLMessageBannerPositionTop
canBeDismissedByUser:YES delegate:self];
“MBLMessageBanner类提供以下方法”
+ (void)setDefaultViewController:(UIViewController *)aViewController;
允许您设置一个默认视图控制器,横幅将附加到其中。
默认值:[UIApplication sharedApplication].keyWindow.rootViewController
+ (void)setMessageBannerDelegate:(id<MBLMessageBannerDelegate>)aDelegate;
允许设置MBLMessageBanner类的代理
请参阅代理文档
+ (void)showMessageBannerInViewController:(UIViewController *)viewController
title:(NSString *)title
subtitle:(NSString *)subtitle;
+ (void)showMessageBannerInViewController:(UIViewController *)viewController
title:(NSString *)title
subtitle:(NSString *)subtitle
atPosition:(MBLMessageBannerPosition)messagePosition;
+ (void)showMessageBannerInViewController:(UIViewController *)viewController
title:(NSString *)title
subtitle:(NSString *)subtitle
type:(MBLMessageBannerType)type
atPosition:(MBLMessageBannerPosition)messagePosition;
+ (void)showMessageBannerInViewController:(UIViewController *)viewController
title:(NSString *)title
subtitle:(NSString *)subtitle
type:(MBLMessageBannerType)type
duration:(NSTimeInterval)duration
atPosition:(MBLMessageBannerPosition)messagePosition;
+ (void)showMessageBannerInViewController:(UIViewController *)viewController
title:(NSString *)title
subtitle:(NSString *)subtitle
type:(MBLMessageBannerType)type
duration:(NSTimeInterval)duration
userDissmissedCallback:(void (^)(MBLMessageBannerView* bannerView))userDissmissedCallback
atPosition:(MBLMessageBannerPosition)messagePosition
canBeDismissedByUser:(BOOL)dismissingEnabled;
+ (void)showMessageBannerInViewController:(UIViewController *)viewController
title:(NSString *)title
subtitle:(NSString *)subtitle
image:(UIImage *)image
type:(MBLMessageBannerType)type
duration:(NSTimeInterval)duration
userDissmissedCallback:(void (^)(MBLMessageBannerView* bannerView))userDissmissedCallback
atPosition:(MBLMessageBannerPosition)messagePosition
canBeDismissedByUser:(BOOL)dismissingEnabled;
+ (void)showMessageBannerInViewController:(UIViewController *)viewController
title:(NSString *)title
subtitle:(NSString *)subtitle
image:(UIImage *)image
type:(MBLMessageBannerType)type
duration:(NSTimeInterval)duration
userDissmissedCallback:(void (^)(MBLMessageBannerView* bannerView))userDissmissedCallback
buttonTitle:(NSString *)buttonTitle
userPressedButtonCallback:(void (^)(MBLMessageBannerView* banner))userPressedButtonCallback
atPosition:(MBLMessageBannerPosition)messagePosition
canBeDismissedByUser:(BOOL)dismissingEnabled
delegate:(id <MBLMessageBannerDelegate>)aDelegate;
+ (void)showMessageBanner:(MBLMessageBannerView *)messageBannerView;
添加一个新MBLMessageBannerView进行显示。每个MBLMessageBannerView都会在屏幕上单独显示。如果多次调用,MBLMessageBanner将在先前的消息横幅视图消失时显示它。
参数说明
+ (BOOL) hideMessageBanner;
+ (BOOL) hideMessageBannerWithCompletion:(void (^)())completion;
隐藏当前显示的信息横幅
参数说明
The MBLMessageBannerView 类提供以下方法
+ (BOOL)addMessageBannerDesignFromFileNamed:(NSString *)file;
加载自定义信息横幅设计文件。
参数说明
消息横幅类实现了以下代理协议的以下可选方法
- (void)messageBannerViewWillAppear:(MBLMessageBannerView *)messageBanner;
- (void)messageBannerViewDidAppear:(MBLMessageBannerView *)messageBanner;
- (void)messageBannerViewWillDisappear:(MBLMessageBannerView *)messageBanner;
- (void)messageBannerViewDidDisappear:(MBLMessageBannerView *)messageBanner;
参数说明
MBLMessageBanner 类还在消息横幅即将或已经出现/消失时发送信号。每个通知都直接由 MBLMessageBannerView 发送。发送的信号是
描述 | 通知名称 | 通知定义 |
---|---|---|
在视图即将出现时发送。 | messageBannerViewWillAppearNotification | MESSAGE_BANNER_VIEW_WILL_APPEAR_NOTIFICATION |
在视图即将出现时发送。 | messageBannerViewDidAppearNotification | MESSAGE_BANNER_VIEW_DID_APPEAR_NOTIFICATION |
在视图即将消失时发送。 | messageBannerViewWillDisappearNotification | MESSAGE_BANNER_VIEW_WILL_DISAPPEAR_NOTIFICATION |
在视图即将消失时发送。 | messageBannerViewDidDisappearNotification | MESSAGE_BANNER_VIEW_DID_DISAPPEAR_NOTIFICATION |
每个消息横幅视图都有一个位置。默认情况下,或者如果未设置,消息横幅视图将具有 MBLMessageBannerPositionTop 定义的控件位置。可用的位置是
每个消息横幅都由其类型定义。配置文件中的设计将根据其实际类型加载。以下是可用的类型及其预设置的设计:
每个消息横幅都有一个“停留在屏幕上”的时间。此持续时间可以通过方法参数手动设置。然而,类也提供了自定义的持续时间。
消息横幅可以通过多种用户手势进行关闭。用户可以通过在视图上轻触一次或使用滑动手势来关闭它。滑动Gesture根据横幅的位置而不同。
配置文件是一个JSON格式化的文件。
JSON文件以这种方式格式化
{
"MessageBannerTypeName": {
"PropertyName" : "Property value"
,"AnotherProperty" : 1.0
},
"AnOtherMessageBannerTypeName": {
"PropertyName" : "Property value"
,"AnotherProperty" : 1.0
}
}
本库包含4种不同类型的横幅,JSON设计文件格式的对应名称如下:
名称 | 类型 |
---|---|
错误 | MBLMessageBannerTypeError |
警告 | MBLMessageBannerTypeWarning |
消息 | MBLMessageBannerTypeMessage |
成功 | MBLMessageBannerTypeSuccess |
每种类型的横幅都可以具有以下属性
属性名称 | 效果 | 可能的值 | 默认值 | 备注 |
---|---|---|---|---|
defaultImageForType | 定义默认左边图像 | "The_image_name.png" | 无 | 图像参数会覆盖此设置 |
blurRadius | 使用给定的半径模糊附加视图 | 0.0+ | 0.0(禁用) | iOS7风格默认模糊半径为40.0 |
backgroundColor | 设置横幅背景颜色 | "#FFFFFF" | "#FFFFFF"(白色) | BackgroundImageName会覆盖此参数 |
backgroundImageName | 设置横幅背景图片 | "The_image_name.png" | 无 | 覆盖BackgroundColor属性 |
backgroundAlpha | 设置横幅背景颜色的透明度 | 0.0 -> 1.0 | 1.0 |
属性名称 | 效果 | 可能的值 | 默认值 | 备注 |
---|---|---|---|---|
titleTextColor | 设置横幅标题文字颜色 | "#FFFFFF" | "#000000"(黑色) | |
titleTextSize | 设置横幅标题文字大小 | 0.0+ | 14.0 | |
titleTextShadowColor | 设置横幅标题文字阴影颜色 | "#FFFFFF" | "#FFFFFF"(白色) | |
titleTextShadowAlpha | 设置横幅标题文字阴影透明度 | 0.0 -> 1.0 | 1.0 | |
titleTextShadowOffsetX | 设置横幅标题文字x阴影偏移 | -0.0+ | 0.0 | |
titleTextShadowOffsetY | 设置横幅标题文字y阴影偏移 | -0.0+ | 1.0 |
属性名称 | 效果 | 可能的值 | 默认值 | 备注 |
---|---|---|---|---|
subtitleTextColor | 设置横幅副标题文本颜色 | "#FFFFFF" | "#000000"(黑色) | |
subtitleTextSize | 设置横幅副标题文本大小 | 0.0+ | 14.0 | |
subtitleTextShadowColor | 设置横幅副标题文本阴影颜色 | "#FFFFFF" | "#FFFFFF"(白色) | |
subtitleTextShadowAlpha | 设置横幅副标题文本阴影透明度 | 0.0 -> 1.0 | 1.0 | |
subtitleTextShadowOffsetX | 设置横幅副标题文本x阴影偏移 | -0.0+ | 0.0 | |
subtitleTextShadowOffsetY | 设置横幅副标题文本y阴影偏移 | -0.0+ | 1.0 |
属性名称 | 效果 | 可能的值 | 默认值 | 备注 |
---|---|---|---|---|
buttonBackgroundColor | 设置按钮背景颜色 | "#FFFFFF" | "#FFFFFF"(白色) | buttonBackgroundImage和buttonBackgroundPatternImage将覆盖此参数 |
buttonBackgroundImage | 设置按钮背景图片 | "The_image_name.png" | 无 | 覆盖buttonBackgroundColor |
buttonBackgroundPatternImage | 设置带有图案图片的按钮背景图片 | "The_image_name.png" | 无 | 覆盖buttonBackgroundImage |
buttonBackgroundAlpha | 设置按钮背景透明度 | 0.0 -> 1.0 | 1.0 | |
buttonCornerRadius | 设置按钮圆角半径 | 0.0+ | 0.0 | |
buttonBorderColor | 设置按钮边框颜色 | "#FFFFFF" | "#000000"(黑色) | 仅在buttonBorderSize >= 1时可见 |
buttonBorderAlpha | 设置按钮边框透明度 | 0.0 -> 1.0 | 1.0 | |
buttonBorderSize | 设置按钮边框大小 | 0.0+ | 0.0 (无) | |
buttonTextColor | 设置横幅按钮文本颜色 | "#FFFFFF" | "#000000"(黑色) | |
buttonTextSize | 设置横幅按钮文本大小 | 0.0+ | 14.0 | |
buttonTextShadowColor | 设置横幅按钮文本阴影颜色 | "#FFFFFF" | "#FFFFFF"(白色) | |
buttonTextShadowAlpha | 设置横幅按钮文本阴影透明度 | 0.0 -> 1.0 | 1.0 | |
buttonTextShadowOffsetX | 设置横幅按钮文本x阴影偏移 | -0.0+ | 0.0 | |
buttonTextShadowOffsetY | 设置横幅按钮文本y阴影偏移 | -0.0+ | 1.0 |
V1.0
V1.1
V1.2
V1.3
V2.0
目前没有问题被提出。
此项目需要
iOS7
ARC
MIT许可协议
版权所有 (c) 2014 Thibault Carpentier [email protected]
本协议无条件授予任何取得此软件及其相关文档副本(以下简称“软件”)的人士,在软件上不受限制地处理的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,以及允许向获得软件的人士提供本软件副本,前提是以下条件
上述版权声明和本许可协议应包含在软件的所有副本或实质性部分中。
本软件按“原样”提供,不提供任何类型的保证,无论明确还是暗示,包括但不限于对适销性、针对特定目的的适用性和非侵权的保证。在任何情况下,作者或版权所有者均不应对任何索赔、损害或其他责任承担责任,无论是基于合同、侵权或其他原因,也不论责任产生于、源于或与该软件或对其的使用或其他方式有关。
Owner: Thibault Carpentier
GitHub: https://github.com/Loadex
LinkedIn: www.linkedin.com/in/CarpentierThibault/
StackOverflow: http://stackoverflow.com/users/1324369/loadex