MMProgressHUD 0.3.2

MMProgressHUD 0.3.2

测试已测试
语言编程语言 Obj-CObjective C
许可证 MIT
发布最新版本2015年9月

Lars Anderson维护。



  • Lars Anderson

一种易于使用且具有个性能的 HUD 接口。

非常遗憾 Mutual Mobile 的内部 HUD 接口不能与世界分享。现在对所有人都开放了!

MMProgressHUD 是 Mutual Mobile 持续增长的开源 Objective-C 项目套件的一部分

简单实现

可以通过 +sharedHUD 类方法或其他可用的类便捷方法访问 MMProgressHUD 的共享实例。

MMProgressHUD 的使用仅需要一行代码

[MMProgressHUD showWithTitle:@"Loading..." status:@"25%"];

取消显示有几种方式,同样简单

/** Do some work asynchronously */

void (^completion)(void) = ^(){
    [MMProgressHUD dismissWithSuccess:@"Completed!"];
}

无需指定父视图 -- 没有其他要考虑的事情。

自定义

对 MMProgressHUD 的外观和感觉进行自定义是可选的,可以在您的应用程序生命周期中执行一次。这些内容在下面的 设置 部分中展示。

安装

使用 cocoapods 进行安装:pod 'MMProgressHUD'

手动安装

如果您真的坚持手动安装,只需将仓库中 Source/ 文件夹下的所有文件包含到您的项目中。如果您项目中没有,您需要链接到 QuartzCore 和 CoreGraphics 框架。

功能

动画

构建 MMProgressHUD 的主要动机是能够轻松地添加所需的有趣动画。根据您的需求,MMProgressHUD 有几种不同的呈现/取消呈现动画样式

  1. 降落 - 当呈现时,HUD 从屏幕上方掉落,仿佛用线悬挂在屏幕顶部的角落上至屏幕的四个角落。关键帧动画的初始角度和常数是随机的,因此每次呈现看起来都不完全相同。在取消显示时,HUD 好像两个线都被剪断了。
  2. 扩展 - 呈现开始时,HUD 非常小,以轻微的弹跳效果逐渐放大到最终大小。取消显示开始时先在原始大小周围弹跳,然后放大到非常巨大的大小。
  3. 缩小 - 展示从比实际大得多的HUD开始,逐渐缩小到最终大小,并伴有轻微的弹跳效果。关闭时,从HUD的原始大小缩小到一个很小的点,同时渐渐淡出并伴有轻微的初始弹跳。
  4. 气球 - 展示在屏幕下方,HUD从底部升起,就像是一个气球被释放到空中并悬挂在绳子的末端。关闭时,表现得像绳索切断,HUD从屏幕顶部飞出。
  5. 淡入淡出 - 标准的alpha淡入/淡出效果。

使用 + (void)setPresentationStyle:(MMProgressHUDPresentationStyle)presentationStyle; 来修改展示动画。

无资源

MMProgressHUD使用CoreGraphics绘制的图像作为默认图像。这使得在项目中嵌入所有文件变得非常容易,无需指定需要复制的包和其它资源。只需要包含源代码即可。

全屏

MMProgressHUD是窗口基础类型的,所以它会显示在状态栏以上。这意味着MMProgressHUD不会对您的视图层次结构造成混乱,它将在自己的窗口中保持独立。MMProgressHUD在任何展示过程中都不会成为主窗口。

自动调整大小

MMProgressHUD支持几乎任意的文本内容。作为设计和减少混乱的一种方法,您可能不应该将过多的文本放入HUD中,但MMProgressHUD会根据您的文本内容智能地布局自己。当显示HUD时更改文本和图像内容,将在两种状态之间初始化一个动画。这个动画非常快,但不是瞬间完成,以便提供状态变化的环境。

极基本的用户交互

MMProgressHUD支持极基本的用户输入,形式为用户确认触摸以启动“取消”操作。用户触摸HUD后,它将进入“确认”状态,其中HUD改变状态来告诉用户下一次触摸将触发您定义的操作(见下文“完成块”)。例如,您可以使用它让用户取消长运行的任务。如果在指定的时间内用户没有确认操作,“确认”状态将重置为正常的HUD状态。MMProgressHUD在确定是否进入“确认”状态时会查找cancelBlock

+ (void)showWithTitle:(NSString *)title
               status:(NSString *)status
  confirmationMessage:(NSString *)confirmation
          cancelBlock:(void(^)(void))cancelBlock;

完成块

某些HUD操作可以附加一个工作块在工作完成时触发。

  1. dismissAnimationCompletion - 当HUD关闭动画完成后执行的工作块。
  2. cancelBlock - 当用户取消长时间运行的操作时执行的工作块。当此块不为空时,HUD将对触摸做出反应,并在第一次触摸时进入“确认”状态。当用户执行确认触摸时,HUD将关闭并触发此块。
  3. progressCompletion - 当HUD的进度属性被馈赠一个值 >= 1.f 时执行的工作块。

确定进度

默认情况下,MMProgressHUD 会显示一个不确定的加载动画,但它也支持通过进度API进行确定的任务。只需向 MMProgressHUD 提供一个进度([0,1]),它就会显示一个进度指示器,将任务进度直观地显示给用户。

目前,已经提供了圆形和线性进度指示器,还有一个API可以提供遵循 MMProgressView 的任意确定的进度类。

+ (void)showProgressWithStyle:(MMProgressHUDProgressStyle)progressStyle
                        title:(NSString *)title
                       status:(NSString *)status
          confirmationMessage:(NSString *)confirmation
                  cancelBlock:(void (^)(void))cancelBlock;

使用更新API更新进度 HUD

+ (void)updateProgress:(CGFloat)progress withStatus:(NSString *)status title:(NSString *)title;
+ (void)updateProgress:(CGFloat)progress withStatus:(NSString *)status;
+ (void)updateProgress:(CGFloat)progress;

设置

在设置 MMProgressHUD 实例时,需要根据您尝试实现的样式和行为来配置设置。您可以在 MMProgressHUD.h 中找到可用的属性。这些设置将在 showdismiss 调用之间持续存在,因此您只需要为每个实例设置一次。

  1. overlayMode - 在 HUD 下方和内容上显示的叠加类型。
  2. successImage - 使用成功 dismiss 的成功图片。默认图片是一个白色的勾号。
  3. errorImage - 使用错误情况的错误图片。默认图片是一个白色的 'X'。
  4. confirmationMessage - 在显示可取消的 HUD 动作时显示给用户的消息。
  5. presentationStyle - HUD 当自身显示和消失时的行为动画。
  6. glowColor - 在取消确认状态时 HUD 发射的发光颜色。
  7. progressStyle - 当 HUD 处于确定进度状态时继承的样式。

结构

MMProgressHUD 由一个窗口、一个叠加视图和 HUD 视图本身组成。由于 MMProgressHUD 是基于窗口的,叠加视图将在状态栏全屏显示。与 MMProgressHUD 的视觉效果相关的唯一两个信息元素是文本标签。

titleLabel - 这是在 HUD 顶部内容区域上方的标签。
statusLabel - 在 HUD 中心内容区域下方显示的消息标签。在没有标题文本的情况下,此标签的字体将是粗体版本。

您永远不会直接访问这些标签属性,但了解在使用类的便捷方法时哪些文本将显示在哪个标签中是有用的。

贡献

当将您的修改重新贡献给整个社区时,请记住以下几点:

  1. 尽可能保持更改简洁。
  2. 当向公开的头部添加新方法时,请谨慎行事。
  3. 不要从公开的头部中删除方法 - 为弃用的方法提供后向兼容性和弃用属性。
  4. 请排除包含大量空格更改的修改 - 它们非常难以差异。
  5. 我们想要您的更改 - 与我们合作,帮助您将其得到处理,以便每个人都能从您的工作中受益!

作者

Lars AndersonMutual Mobile 创建。

贡献者(谢谢!)

许可证

标准的MIT许可证