繁体   English   中英

UITableViewController中的UIActivityIndi​​catorView

[英]UIActivityIndicatorView in a UITableViewController

我目前正在更新我的一个应用程序。 它从Internet上获取信息,并使用networkActivityIndi​​catorVisible在状态栏中显示和隐藏活动指示器。 我们收到的关于此的一个投诉是,它太小了,用户不知道他们的设备正在获取信息。 因此,我的想法是在视图中间使用旋转活动轮。 如果您尝试将其中一项拖出,则会将其放置在单元格或我制作的标题UIView中。 这不是我想要的,所以我以编程方式做到了。

在头文件中。

@property (strong, nonatomic) UIActivityIndicatorView *mySpinner;

在执行文件中。

_mySpinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
_mySpinner.color = [UIColor blackColor];
_mySpinner.translatesAutoresizingMaskIntoConstraints = NO;
_mySpinner.hidesWhenStopped = YES;

然后,通过执行以下操作,将纺车添加到我的视图中。 随着我的约束。

[self.view addSubview:_mySpinner];

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:_mySpinner
                                                      attribute:NSLayoutAttributeCenterX
                                                      relatedBy:NSLayoutRelationEqual
                                                         toItem:self.view
                                                      attribute:NSLayoutAttributeCenterX
                                                     multiplier:1
                                                       constant:0]];
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:_mySpinner
                                                      attribute:NSLayoutAttributeCenterY
                                                      relatedBy:NSLayoutRelationEqual
                                                         toItem:self.view
                                                      attribute:NSLayoutAttributeCenterY
                                                     multiplier:0.75
                                                       constant:0]];
[_mySpinner startAnimating];

我运行了代码,它运行良好。 即使当我旋转微调器时,我也想要它。 但是,这就是问题所在,当我滚动表格视图时,微调器随之正确地运行!

我知道这是由于我将微调器添加到self.view并使用了self.view进行了所有约束。 对于UITableViewController,表视图为self.view。

该应用程序有几个表格视图,它们都很长,许多带有自定义单元格。 我并不是真的想重新设计一切,但是没有人知道我是否可以约束UITableViewController的超级视图吗? 我已经尝试了几件事,但是没有任何效果。 抱歉,这么长的问题,但我希望有人可以帮忙。 谢谢阅读!

解决方案是只访问应用程序的窗口,然后为其添加活动指示器

 UIWindow *frontWindow = [[UIApplication sharedApplication] keyWindow];
    self.activity.center=frontWindow.center;

    [frontWindow addSubview:self.activity];
    [self.activity startAnimating];

链接到代码https://github.com/murali9/ActvityonTableview

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM