使用iPhone SDK创建"加载..."视图

Mug*_*nth 13 iphone cocoa-touch

当一些长期待处理操作正在进行时,如何创建许多应用程序使用的黑/灰模式弹出窗口视图?

就像使用基于位置的服务,加载网页一样,屏幕变暗,并且有一个模态视图显示旋转图标"请稍候......"

以下屏幕截图中的示例:

截图

Jan*_*les 17

这实际上是无证件(无论如何在2.2.1中)UIProgressHUD.像这样创建一个:

在你的.h:

@interface UIProgressHUD : NSObject 
- (UIProgressHUD *) initWithWindow: (UIView*)aWindow; 
- (void) show: (BOOL)aShow; 
- (void) setText: (NSString*)aText; 
@end 
Run Code Online (Sandbox Code Playgroud)

在你的.m:

- (void) killHUD: (id)aHUD 
{ 
[aHUD show:NO]; 
[aHUD release]; 
} 

- (void) presentSheet 
{ 
id HUD = [[UIProgressHUD alloc] initWithWindow:[contentView superview]]; 
[HUD setText:@"Doing something slow. Please wait."]; 
[HUD show:YES]; 
[self performSelector:@selector(killHUD:) withObject:HUD afterDelay:5.0]; 
} 
Run Code Online (Sandbox Code Playgroud)

  • 可以使用并提交到App Store吗? (3认同)
  • 是的,这不是链接到私有API.我们已经使用UIAlertView上的按钮做了类似的事情,经过审查没有任何问题. (3认同)
  • 有两种使用私有API的方法.第一个是链接到私有框架,第二个是使用来自公共框架的未记录的调用.后者(我们在这里做的)过去常常通过评论,但几个月前苹果现在也拒绝它.换句话说,这始终是私有API,官方文档中没有描述,因此无法保证工作,留下或让您完成审核. (3认同)

Mat*_*ski 14

如果你想避免未记录的api,你也可以看看MBProgressHUD.它与UIProgressHUD类似,甚至还有一些额外的功能.