zoukankan      html  css  js  c++  java
  • SVProgressHUD–比MBProgressHUD更好用的 iOS进度提示组件

    简介

    SVProgressHUD

    SVProgressHUD是简单易用的显示器,用于指示一个持续进行的任务的进度.

    快速入门

    安装

    通过Cocoapods

    pod 'SVProgressHUD'
    

    手动安装

    • 拖拽 SVProgressHUD/SVProgressHUD 文件 到你的项目.
    • 注意把 SVProgressHUD.bundle 添加进 Targets->Build Phases->Copy Bundle Resources.
    • 添加 QuartzCore framework 到你的项目.

    使用

    (参见Xcode项目文档 /Demo)

    SVProgressHUD 作为一个单例(也就是说,它并不需要创建和实例化,你直接调用, 如[SVProgressHUD method]).

    使用 SVProgressHUD是非常明智的!常用场景:下拉刷新,无限滚动,发送消息

    使用 SVProgressHUD在您的应用程序通常看起来简单:

    [SVProgressHUD show];
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        // time-consuming task
        dispatch_async(dispatch_get_main_queue(), ^{
            [SVProgressHUD dismiss];
        });
    });
    

    显示 HUD

    您可以使用下面的方法中的任意一个来显示HUD,以及指示任务的状态:

    + (void)show;
    + (void)showWithStatus:(NSString*)string;
    

    如果您想在HUD指示任务的进度,请使用下列操作之一:

    + (void)showProgress:(CGFloat)progress;
    + (void)showProgress:(CGFloat)progress status:(NSString*)status;
    

    隐藏 HUD

    HUD可以用以下方法隐藏:

    + (void)dismiss;
    + (void)dismissWithDelay:(NSTimeInterval)delay;
    

    如果你想显示多个HUD ,可以使用使用一下方法:

    + (void)popActivity;
    

    该HUD将自动消失, popActivity将与显示的次数匹配。

    显示一个提示消息

    也可以用于显示一个提示信息。所述显示时间取决于给定的字符串的长度( 0.5至5秒)。

    + (void)showInfoWithStatus:(NSString *)string;
    + (void)showSuccessWithStatus:(NSString*)string;
    + (void)showErrorWithStatus:(NSString *)string;
    + (void)showImage:(UIImage*)image status:(NSString*)string;
    

    自定义

    SVProgressHUD 可通过下列方法进行个性化定制:

    + (void)setDefaultStyle:(SVProgressHUDStyle)style;                  // 默认是SVProgressHUDStyleLight
    + (void)setDefaultMaskType:(SVProgressHUDMaskType)maskType;         // 默认是SVProgressHUDMaskTypeNone
    + (void)setDefaultAnimationType:(SVProgressHUDAnimationType)type;   // 默认是 SVProgressHUDAnimationTypeFlat
    + (void)setRingThickness:(CGFloat)width;                            // 默认是 2 pt
    + (void)setCornerRadius:(CGFloat)cornerRadius;                      // 默认是 14 pt
    + (void)setFont:(UIFont*)font;                                      // 默认是 [UIFont preferredFontForTextStyle:UIFontTextStyleSubheadline]
    + (void)setForegroundColor:(UIColor*)color;                         // 默认是 [UIColor blackColor], 仅对 SVProgressHUDStyleCustom 有效
    + (void)setBackgroundColor:(UIColor*)color;                         // 默认是 [UIColor whiteColor], 仅对 SVProgressHUDStyleCustom 有效
    + (void)setInfoImage:(UIImage*)image;                               //默认是bundle文件夹中的提示图片.
    + (void)setSuccessImage:(UIImage*)image;                            // 默认是bundle文件夹中的成功图片.
    + (void)setErrorImage:(UIImage*)image;                              // 默认是bundle文件夹中的错误图片.
    + (void)setViewForExtension:(UIView*)view;                          // 默认是nil,仅当设置了 #define SV_APP_EXTENSIONS 时有效.
    

    通知

    SVProgressHUD通过 NSNotificationCenter 注册4份通知,以响应正在显示/消失:

    • SVProgressHUDWillAppearNotification 提示框即将出现
    • SVProgressHUDDidAppearNotification 提示框已经出现
    • SVProgressHUDWillDisappearNotification 提示框即将消失
    • SVProgressHUDDidDisappearNotification 提示框已经消失

    每个通知传递一个 userInfo字典,字典中包含HUD的状态字符串(如果有的话) ,可通过 SVProgressHUDStatusUserInfoKey作为键来获取。

    SVProgressHUD还发送通知:
    SVProgressHUDDidReceiveTouchEventNotification当用户触摸整体屏幕上 和
    ' SVProgressHUDDidTouchDownInsideNotification当用户直接在HUD接触。这两个通知没有 userInfo参数,但包含了有关的触摸的UIEvent` 参数.

    App 扩展(App Extension)

    当在应用程序中使用SVProgressHUD时, 要定义常量 #define SV_APP_EXTENSIONS避免使用不可用的API。然后从你的扩展视图控制器中通过self.view 调用 setViewForExtension: 即可。
    注意: 此处指的是"App Extension",不是类目."File->New->Target...-> iOS -> App Extension->Photo Editing Extension". 如果未用到,可忽略. 更多细节参考: https://github.com/TransitApp/SVProgressHUD/issues/390

  • 相关阅读:
    韦德螺旋: 这真是一个螺旋吗?
    山上你能看到什么动物?
    你能够30秒内一字不差的念完它吗? 注意, 是读“颜色”, 不是让你识字.
    路透斯沃德的不可能的三角形
    换个角度, 青蛙也许就是白马王子
    这是一张很有趣的图片, 通常女性会先看到月亮, 男性会先看到人脸. 如果相反, 表示你体内的异性荷尔蒙偏高哦!
    亲吻的情侣幻觉: 这幅虚幻的亲吻由美国艺术家杰里•唐恩创作.
    PostgreSQL的 initdb 源代码分析之七
    PostgreSQL的initdb 源代码分析之六
    PostgreSQL的initdb 源代码分析之五
  • 原文地址:https://www.cnblogs.com/ios122/p/4810529.html
Copyright © 2011-2022 走看看