ALAlertBanner 0.3.1

ALAlertBanner 0.3.1

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最新发布2014年12月

未声明的 维护。




  • 作者
  • Anthony Lobianco

ALAlertBanner 是一个用于 iOS(包括 iPhone 和 iPad)的可插入组件,允许您以可定制和可配置的方式显示美观的警告条。

预览

Preview1 Preview2

Preview3

为什么使用 ALAlertBanner?

  • 支持横竖屏
  • 许多不同的样式和位置选择
  • 可以在屏幕上同时显示多个警告条(甚至在不同位置)
  • 自动消失,以及可选的点击响应块的手动消失功能
  • 轻量级,稳定,内存占用小的组件
  • 通用(iPhone 和 iPad)支持
  • iOS 5.0 - iOS 7 支持

幕后

ALAlertBanner 在底层使用 Core AnimationGrand Central Dispatch,使其轻量级和稳定。使用单例对象同步管理警告的显示和消失。

安装

安装很简单。

手动

  1. 从 GitHub 下载 ZIP 并将 ALAlertBanner 目录复制到您的项目中
  2. 在项目的构建阶段中链接 QuartzCore.framework
  3. 在您选择的视图中导入 #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 中显示此横幅:横幅将从状态栏下方延伸(如果可见)

  • UIViewUINavigationController 内部:它将从导航条下方延伸

  • UIWindow:它应该从状态栏下方延伸,但在任何其他 UI 元素之上,比如导航栏

ALAlertBannerPositionBottom

横幅将从屏幕底部向上延伸。

ALAlertBannerPositionUnderNavBar

此位置应 用于在 UIWindow 中显示。它将创建类似于在 UIWindow 内部 UIViewALAlertBannerPositionTop 的效果(即从导航条下方延伸),但它实际上是在所有其他视图之上。它通过使用 CALayer 遮罩来实现这一点。此位置对于您想在 AppDelegate 中设置类似于“捕获所有”错误处理程序是有用的,该处理程序响应该事件的通知,例如网络请求;同时您还想让它从导航栏下方动画。

横幅样式

ALAlertBannerStyleSuccess = 0

横幅将有一个可爱的小勾选标志和漂亮的绿色渐变。

ALAlertBannerStyleFailure

横幅将有一个可爱的小叉号和漂亮的红色渐变。

ALAlertBannerStyleNotify

横幅将有一个可爱的小信息符号和漂亮的蓝色渐变。

ALAlertBannerStyleWarning

横幅将有一个可爱的小警告三角形和漂亮的黄色渐变。

我提到它们有可爱的小形状和漂亮的彩色渐变了吗?

建议?

如果您有任何建议,请告诉我!如果您发现任何错误,请打开新的问题。

联系我

您可以通过以下地址随时联系我。如果您使用这个库,请在推特上告诉我您喜欢它,我会很高兴听到您的想法。

GitHub: alobi
Twitter: @lobi4nco
Email: [email protected]

致谢和许可证

ALAlertBanner是由Anthony Lobianco开发和维护的(@lobi4nco)。遵循MIT许可证。基本上,如果你使用它,我会欣赏对该项目的署名。

祝您享受!

(⌐■_■)