CWStatusBarNotification :在状态栏显示自定义通知
简介
CWStatusBarNotification 是一个能够让你更容易地在状态栏显示文本通知的库.从 2.2.0 开始, 支持选择自定义通知视图,而不再只是显示文字.
快速入门
环境
ARC + iOS 7.0 + iPhone/ipad
安装
通过 CocoaPods 安装
1 |
pod 'CWStatusBarNotification', '~> 2.3.2' |
手动安装
把项目主页工程中的 CWStatusBarNotification 文件夹拷贝到你的工程中即可.
用法
首先,你需要引入头文件:
1 |
#import "CWStatusBarNotification.h" |
现在,你需要创建一个 CWStatusBarNotification 对象.建议把它作为 UIViewController 的一个属性:
1 |
CWStatusBarNotification *notification = [CWStatusBarNotification new]; |
创建一个 CWStatusBarNotification 对象之后, 你只需要调用 displayNotificationMessage:forDuration: 方法即可:
1 2 |
[self.notification displayNotificationWithMessage:@"Hello, World!" forDuration:1.0f]; |
如果你想自己控制状态栏通知的出现和消失,你可以这样做:
1 2 3 |
[self.notification displayNotificationWithMessage:@"Hello" completion:nil]; // 等到你需要它消失时再消失. [self.notification dismissNotification]; |
处理轻击事件
通知被轻击时的默认行为是使通知消失.你可以通过重写 onTapNotification 函数体来改变这一默认行为.
例如:
1 2 3 4 5 6 7 8 |
__weak typeof(self) weakSelf = self; self.notification.notificationTappedBlock = ^(void) { if (!weakSelf.notificationIsDismissing) { // 通常需要先隐藏状态栏通知. [weakSelf dismissNotification]; // 在这里写更多的代码. } }; |
自定义外观
你可以通过 notificationLabelBackgroundColor 属性设置背景色,默认值是 [[UIApplication sharedApplication] delegate].window.tintColor;
你可以通过 notificationLabelTextColor 属性设置文本颜色,默认值是 [UIColor whiteColor];
你可以通过 notificationStyle 属性设置通知是覆盖在状态栏(CWNotificationStyleStatusBarNotification),还是覆盖整个顶部导航栏(CWNotificationStyleNavigationBarNotification),默认值是CWNotificationStyleStatusBarNotification.
自定义显示/隐藏的动画效果
可以使用 notificationAnimationInStyle 和 notificationAnimationOutStyle 来指定状态栏显示/隐藏时的动画效果,默认值都是 CWNotificationAnimationStyleTop,可选值是:
CWNotificationAnimationStyleTop
CWNotificationAnimationStyleBottom
CWNotificationAnimationStyleLeft
CWNotificationAnimationStyleRight
显示自定义通知视图
从 2.2.0 开始, 支持选择自定义通知视图,而不再只是显示文字:
1 2 |
UIView *view = [[NSBundle mainBundle] loadNibNamed:@"CustomView" owner:nil options:nil][0]; [self.notification displayNotificationWithView:view forDuration:self.sliderDuration.value]; |
你也可以手动控制何时显示与隐藏:
1 2 3 |
[self.notification displayNotificationWithView:view completion:nil]; // 等到你想让它隐藏时,再消失. [self.notification dismissNotification]; |
开源地址:https://github.com/cezarywojcik/CWStatusBarNotification