TWMessageBarManager
简单翻译
An iOS manager for presenting system-wide notifications via a dropdown message bar.
一个iOS的管理类,用来展示系统级别的通知,通过一个下拉的信息条。
Requirements
- Requires iOS 6.0 or later
- Requires Automatic Reference Counting (ARC)
- 需要iOS6.0或以上
- 需要ARC
Features
- Drop-in singleton manager supported across all devices.
- Simple to use protocols and callbacks.
- Landscape and portrait orientation support.
- Highly customizable.
- 单例模式,支持所有的种类的设备
- 可以使用协议或者block
- 支持横屏竖屏
- 高度定制
Refer to the for an overview of TWMessagBarManager's feature history.
Author
Terry Worona
Tweet me
Email me at
Installation
is the recommended method of installing the TWMessageBarManager.
推荐用CocoPods来安装吧。
The Pod Way
Simply add the following line to your Podfile
:
pod 'TWMessageBarManager'
Your podfile should look something like:
platform :ios, '6.0'pod 'TWMessageBarManager', '~> 1.4.0'
The Old School Way
The simpliest way to use TWMessageBarManager with your application is to drag and drop the /Classes folder into you're Xcode 5 project. It's also recommended you rename the /Classes folder to something more descriptive (ie. "TWMessageBarManager").
最简单的方法就是,将这个 TWMessageBarManager 拖入到你的工程项目当中。当然,拖进工程之后,你也需要看看里面文件的一些描述信息。
Usage
Calling the manager
调用这个控制器
As a singleton class, the manager can be accessed from anywhere within your app via the + sharedInstancefunction:
因为他是一个单例,所以,你可以在你的应用程序的任何地方,通过方法 sharedInstance 来调用:
[TWMessageBarManager sharedInstance]
Presenting a basic message
展示一条基本的信息
All messages can be preseted via showMessageWithTitle:description:type:. Additional arguments include duration and callback blocks to be notified of a user tap.
所有的信息都可以通过showMessageWithTitle:description:type:来展示出来,额外的一些参数包括,显示时长,用户点击提示的回调。
Basic message:
基本信息:
[[TWMessageBarManager sharedInstance] showMessageWithTitle:@"Account Updated!" description:@"Your account was successfully updated." type:TWMessageBarMessageTypeSuccess];
The default display duration is 3 seconds. You can override this value by supplying an additional argument:
这个默认的显示时间是3s,当然啰,你也可以重写他嘛:
[[TWMessageBarManager sharedInstance] showMessageWithTitle:@"Account Updated!" description:@"Your account was successfully updated." type:TWMessageBarMessageTypeSuccess forDuration:6.0];
Hiding messages
隐藏信息
It's not currently possible to hide or cancel a message on a per-instance basis. Instead, all messages must be canceled at once. This action may or may not be animated:
不大可能立刻为每一个基础信息展示隐藏或者取消掉。相对的,要取消也是所有的信息一起取消,而且是立刻,下面的方法有两种,一种是有动画的取消,一种是没有动画的取消:
[[TWMessageBarManager sharedInstance] hideAllAnimated:YES]; // animated[[TWMessageBarManager sharedInstance] hideAll]; // non-animated
Callbacks
回调
By default, if a user taps on a message while it is presented, it will automatically dismiss. To be notified of the touch, simply supply a callback block:
默认的,当用户点击到了这条展示的信息,他将会自动消失掉,为了标记这次点击,简单的从一个回调的block中取点击事件就可以了:
[[TWMessageBarManager sharedInstance] showMessageWithTitle:@"Account Updated!" description:@"Your account was successfully updated." type:TWMessageBarMessageTypeSuccess callback:^{ NSLog(@"Message bar tapped!");}];
Queue
队列
The manager is backed by a queue that can handle an infinite number of sequential requests. You can stack as many messages you want on the stack and they will be presetented one after another:
这个控制器也是可以被存储在队列中的咯,这个队列会管理一系列的请求而挨个展示。你可以将你要展示的信息挨个的添加进这个队列中吧。
[[TWMessageBarManager sharedInstance] showMessageWithTitle:@"Message 1" description:@"Description 1" type:TWMessageBarMessageTypeSuccess];[[TWMessageBarManager sharedInstance] showMessageWithTitle:@"Message 2" description:@"Description 2" type:TWMessageBarMessageTypeError];[[TWMessageBarManager sharedInstance] showMessageWithTitle:@"Message 3" description:@"Description 3" type:TWMessageBarMessageTypeInfo];
Customization
定制
An object conforming to the TWMessageBarStyleSheet protocol defines the message bar's look and feel:
一个遵守TWMessageBarStyleSheet 协议的对象定义了信息条的样式以及感觉:
+ (UIColor *)backgroundColorForMessageType:(TWMessageBarMessageType)type;+ (UIColor *)strokeColorForMessageType:(TWMessageBarMessageType)type;+ (UIImage *)iconImageForMessageType:(TWMessageBarMessageType)type;
If no style sheet is supplied, a default class is provided on initialization. To customize the look and feel of your message bars, simply supply an object conforming to the TWMessageBarStyleSheet protocol via:
如过你没有提供任何的设置样式,它会直接使用默认值。为了定制这个信息条的样式以及感觉,简单的提供一个与协议相关的对象进行一些配置。
@property (nonatomic, weak) idstyleSheet;
See TWAppDelegateDemoStyleSheet for an example on how to create a custom stylesheet.
怎么配置呢,不懂的话,请看看那个自定义的demo吧。