zoukankan      html  css  js  c++  java
  • 使用开源库 TWMessageBarManager 展示系统级别的通知

    TWMessageBarManager

    简单翻译

    https://github.com/terryworona/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 changelog for an overview of TWMessagBarManager's feature history.

    Author

    Terry Worona

    Tweet me @terryworona

    Email me at terryworona@gmail.com

    Installation

    CocoaPods 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) id<TWMessageBarStyleSheet> styleSheet;
    

    See TWAppDelegateDemoStyleSheet for an example on how to create a custom stylesheet.

    怎么配置呢,不懂的话,请看看那个自定义的demo吧。

  • 相关阅读:
    玩转html2canvas以及常见问题解决
    docker磁盘空间清理办法
    统计行数、文件夹个数、文件个数的相关shell命令
    golang将字符串进行md5加密
    思考如何将自动化测试加入持续集成中
    锋利的NodeJS之NodeJS多线程
    成年人的必修课:抗压和自驱力
    MacOS下PHP7.1升级到PHP7.4.15
    php性能分析利器:xhprof
    后Low Code时代:聚焦和突破
  • 原文地址:https://www.cnblogs.com/YouXianMing/p/3633433.html
Copyright © 2011-2022 走看看