ALAlertBanner 是一个用于 iOS(包括 iPhone 和 iPad)的可插入组件,允许您以可定制和可配置的方式显示美观的警告条。
ALAlertBanner 在底层使用 Core Animation 和 Grand Central Dispatch,使其轻量级和稳定。使用单例对象同步管理警告的显示和消失。
安装很简单。
QuartzCore.framework
库#import "ALAlertBanner.h"
如果您可以无错误编译,恭喜!您已经迈出一步...
(•_•)
( •_•)>⌐■-■
(⌐■_■)
...变得酷炫.
ALAlertBanner 已经在 iOS 5.0、5.1 和 6.0(模拟器)、iOS 6.1(设备)和 iOS 7.0(模拟器)上进行了测试。ALAlertBanner 需要启用 ARC。
ALAlertBanner 使用简单。您将创建一个警告条,(可选地)对其进行自定义,然后告诉它显示自己,如下所示
ALAlertBanner *banner = [ALAlertBanner alertBannerForView:self.view
style:ALAlertBannerStyleSuccess
position:ALAlertBannerPositionTop
title:@"Success!"
subtitle:@"Here's a banner. That was easy."];
/*
optionally customize banner properties here...
*/
[banner show];
您还可以在 UIWindow
中显示它
AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
ALAlertBanner *banner = [ALAlertBanner alertBannerForView:appDelegate.window
style:ALAlertBannerStyleNotify
position:ALAlertBannerPositionUnderNavBar
title:@"Notify!"
subtitle:@"Here's another banner."];
[banner show];
几点注意事项:`title` 限制为单行,必要时将被截断。`subtitle` 可以是任意行数。`title` 和 `subtitle` 可以为 nil,但 `style` 和 `position` 不能为 nil。
+ (ALAlertBanner *)alertBannerForView:(UIView *)view
style:(ALAlertBannerStyle)style
position:(ALAlertBannerPosition)position
title:(NSString *)title
subtitle:(NSString *)subtitle
tappedBlock:(void(^)(ALAlertBanner *alertBanner))tappedBlock;
处理横幅点击的可选方法。
默认情况下,提供点击处理程序将禁用此特定横幅上的 allowTapToDismiss
。如果您想在点击处理程序的同时恢复此行为,可以在 tappedBlock()
中调用 [alertBanner hide];
。
- (void)hide;
立即隐藏此警报横幅,忽略 secondsToShow
值。
+ (NSArray *)alertBannersInView:(UIView *)view;
返回某个视图内所有横幅的数组。
+ (void)hideAllAlertBanners;
立即隐藏所有视图中的所有警报横幅,忽略它们的 secondsToShow
值。
+ (void)hideAlertBannersInView:(UIView *)view;
立即隐藏某个视图中的所有警报横幅,忽略它们的 secondsToShow
值。
+ (void)forceHideAllAlertBannersInView:(UIView *)view;
立即强制隐藏所有警报横幅,忽略它们的消失动画。如果需要,您可以在视图控制器的 viewWillDisappear:
中调用此方法。
注意:如果 您在其中推送或弹出具有横幅的视图控制器,必须在您的视图控制器的 viewWillDisappear:
方法中调用 forceHideAllAlertBannersInView:
。否则,动画单例可能会困惑并忽略其职责。
ALAlertBanner具有以下可编辑属性
/**
Length of time in seconds that a banner should show before auto-hiding.
Default value is 3.5 seconds. A value == 0 will disable auto-hiding.
*/
@property (nonatomic) NSTimeInterval secondsToShow;
/**
Tapping on a banner will immediately dismiss it.
Default value is YES. If you supply a tappedHandler in one of the appropriate methods, this will be set to NO for that specific banner.
*/
@property (nonatomic) BOOL allowTapToDismiss;
/**
The length of time it takes a banner to transition on-screen.
Default value is 0.25 seconds.
*/
@property (nonatomic) NSTimeInterval showAnimationDuration;
/**
The length of time it takes a banner to transition off-screen.
Default value is 0.2 seconds.
*/
@property (nonatomic) NSTimeInterval hideAnimationDuration;
/**
Banner opacity, between 0 and 1.
Default value is 0.93f.
*/
@property (nonatomic) CGFloat bannerOpacity;
ALAlertBannerPositionTop = 0
横幅将从屏幕顶部向下延伸。如果您要在
UIView
中显示此横幅:横幅将从状态栏下方延伸(如果可见)
UIView
在 UINavigationController
内部:它将从导航条下方延伸
UIWindow
:它应该从状态栏下方延伸,但在任何其他 UI 元素之上,比如导航栏
ALAlertBannerPositionBottom
横幅将从屏幕底部向上延伸。
ALAlertBannerPositionUnderNavBar
此位置应 仅 用于在 UIWindow
中显示。它将创建类似于在 UIWindow
内部 UIView
的 ALAlertBannerPositionTop
的效果(即从导航条下方延伸),但它实际上是在所有其他视图之上。它通过使用 CALayer
遮罩来实现这一点。此位置对于您想在 AppDelegate 中设置类似于“捕获所有”错误处理程序是有用的,该处理程序响应该事件的通知,例如网络请求;同时您还想让它从导航栏下方动画。
ALAlertBannerStyleSuccess = 0
横幅将有一个可爱的小勾选标志和漂亮的绿色渐变。
ALAlertBannerStyleFailure
横幅将有一个可爱的小叉号和漂亮的红色渐变。
ALAlertBannerStyleNotify
横幅将有一个可爱的小信息符号和漂亮的蓝色渐变。
ALAlertBannerStyleWarning
横幅将有一个可爱的小警告三角形和漂亮的黄色渐变。
我提到它们有可爱的小形状和漂亮的彩色渐变了吗?
如果您有任何建议,请告诉我!如果您发现任何错误,请打开新的问题。
您可以通过以下地址随时联系我。如果您使用这个库,请在推特上告诉我您喜欢它,我会很高兴听到您的想法。
GitHub: alobi
Twitter: @lobi4nco
Email: [email protected]
ALAlertBanner是由Anthony Lobianco开发和维护的(@lobi4nco)。遵循MIT许可证。基本上,如果你使用它,我会欣赏对该项目的署名。
祝您享受!
(⌐■_■)