2012-04-14 78 views
16

所以,当用户点击我应用程序中的按钮时,我想创建一个带有活动指示器的新视图,并用它覆盖整个屏幕,直到按钮操作完成。如何让我的活动指示器视图覆盖所有屏幕?

但是,我的活动指标视图只覆盖表视图里面,它看起来像这样:

enter image description here

如何使它覆盖整个屏幕?包括导航控制器和表格视图工具栏。

这里是我的代码,我用它来创建视图:

self.overlayView = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds]; 
self.overlayView.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.5]; 
self.activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; 
self.activityIndicator.center = self.overlayView.center; 
[self.overlayView addSubview:self.activityIndicator]; 
[self.activityIndicator startAnimating]; 
[self.tableView addSubview:self.overlayView]; 

回答

21

变化

[self.tableView addSubview:self.overlayView]; 

[self.navigationController.view addSubview:self.overlayView]; 

相应设置覆盖的矩形。

+2

+1,因为这也将运转正常(shabzco的解决方案不会)。 – Till 2012-04-14 21:09:43

+0

@CodaFi谢谢,它的工作。但是我怎样才能删除视图?现在当我做[self.activityIndi​​cator removeFromSuperview]; [self.overlayView removeFromSuperview];它不起作用。 – 2012-04-14 23:13:29

+1

我添加了一个标签覆盖视图:overlayView.tag = 1;然后使用该标签来标识覆盖图以将其删除:[[self.navigationController.view viewWithTag:1] removeFromSuperview]; – JanB 2015-10-12 13:37:48

5

这样做:

[[UIApplication sharedApplication].keyWindow addSubview:self.overlayView]; 
相关问题