我目前正在更新我的一个应用程序。它从internet获取信息,并使用networkActivityIndicatorVisible在状态栏中显示和隐藏活动指示符。我们收到的一个抱怨是,它太小了,用户不知道他们的设备正在获取信息。所以我的想法是利用旋转的活动轮在我的视野中间。如果尝试从项中拖动一个项,它会将其放置在单元格中,或者放在我创建的标头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中是否有一个超级视图,我可以把我的约束放在上面呢?我试过几件事,但都没有用。很抱歉提出这么长的问题,但我希望有人能帮忙。感谢您的阅读!
发布于 2015-01-31 06:21:23
解决方案只是访问应用程序的窗口,然后为其附加活动指示符,如下
UIWindow *frontWindow = [[UIApplication sharedApplication] keyWindow];
self.activity.center=frontWindow.center;
[frontWindow addSubview:self.activity];
[self.activity startAnimating];https://stackoverflow.com/questions/28246412
复制相似问题