当前位置:  开发笔记 > 运维 > 正文

如何在iPhone上显示进度指示器叠加/ HUD?

如何解决《如何在iPhone上显示进度指示器叠加/HUD?》经验,为你挑选了3个好方法。

我想在一个浮动在表视图上的半透明框中显示进度指示器.换句话说,当正在下载表格内容时,我希望在其上方显示"正在更新"标签.

我在商店的几个应用程序中看到了这一点,特别是Facebook(当你动摇重装时)和Darkslide.

我的第一个冲动是创建一个半透明的UIView,在其中放置一个UILabel和一个UIProgressIndicatorView,并将其添加到视图层次结构......但在哪里? UIView可能不会与其兄弟姐妹重叠,因此我无法将其作为窗口的子视图. 我也不能把它作为表的子视图,因为它会随表格内容向上和向下滚动.

我考虑过创建一个新的UIWindow,但文档基本上说没有.

我知道CALayers可以相互重叠,所以这是一个选项,但我不能在CALayer中放一个进度指示器,我可以吗?我应该滚动自己的进度指示器来动画CALayer而不是UIView吗?

我对听说私有API不感兴趣.

编辑:问题是基于一个错误的假设.NSViews(在Mac OS X上)可能不会重叠,但iPhone上的UIViews可能会重叠.



1> yonel..:

我刚刚发布了我的HUD版本:https: //github.com/y0n3l/LGViewHUD

你很容易得到这个结果:

#import "LGViewHUD.h"
.... 
LGViewHUD* hud = [LGViewHUD defaultHUD];
hud.activityIndicatorOn=YES;
hud.topText=@"The longer....";
hud.bottomText=@"The better !";
[hud showInView:self.view];

在此输入图像描述

任务结束后,只需调用即可

[[LGViewHUD defaultHUD] hideWithAnimation:HUDAnimationHideFadeOut];

就是这样!



2> nduplessis..:

你绝对可以重叠视图.只需将透明叠加层添加为tableView中的子视图即可.

从UIView的文档:

UIView对象排列在UIWindow对象中,位于子视图的嵌套层次结构中.视图层次结构中的父对象称为超级视图,子级称为子视图.视图对象声称其封闭超视图的矩形区域,负责该区域内的所有绘图,并且还有资格接收其中发生的事件.同级视图可以重叠而不会出现任何问题,从而允许复杂的视图放置.



3> Pierre de LE..:

还有着名的MBProgressHUD和SVProgressHUD
它们与@yonel的HUD相同

[SVProgressHUD show];
[SVProgressHUD dismiss];

SVProgressHUD示例 MBProgressHUD现在看起来更受欢迎(如果我们基于github明星)

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有