【问题标题】:How to make my activity indicator view cover all screen?如何让我的活动指示器视图覆盖所有屏幕?
【发布时间】:2012-04-18 06:23:07
【问题描述】:

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

但是,我的活动指示器视图只覆盖了表格视图的内部,它看起来像这样:

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

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

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];

【问题讨论】:

    标签: iphone objective-c ios xcode


    【解决方案1】:

    改变

    [self.tableView addSubview:self.overlayView];
    

    到

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

    相应地设置叠加层的矩形。

    【讨论】:

    • +1 因为这也会正确旋转(shabzco 的解决方案不会)。
    • @CodaFi 谢谢,它成功了。但是我怎样才能删除视图?现在当我做 [self.activityIndi​​cator removeFromSuperview]; [self.overlayView removeFromSuperview];它不起作用。
    • 我用标签添加了我的覆盖视图:overlayView.tag=1;然后使用标签识别覆盖以将其删除:[[self.navigationController.view viewWithTag:1] removeFromSuperview];
    【解决方案2】:

    这样做:

    [[UIApplication sharedApplication].keyWindow addSubview:self.overlayView];
    

    【讨论】:

      猜你喜欢
      • 2020-10-21
      • 1970-01-01
      • 1970-01-01
      • 2015-06-30
      • 2018-10-13
      • 1970-01-01
      • 2021-01-12
      • 2011-12-26
      • 1970-01-01
      相关资源
      最近更新 更多