在 iOS 中加载 UIView 时如何为 UIActivityIndicator 设置灰色背景
目前,UIActivityIndicator
在屏幕上出现一两秒。我想将背景设置为灰色,因为它出现在屏幕上,但我不确定如何执行此操作...
这是到目前为止我初始化指示器的方式。
- (void)viewDidLoad
{
//...
activity = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 32.0f, 32.0f)];
[activity setCenter:CGPointMake(160.0f, 208.0f)];
[activity setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleGray];
[self.tableView addSubview:activity];
[activity startAnimating];
[activity performSelector:@selector(stopAnimating) withObject:nil afterDelay:1.0];
}
任何帮助将不胜感激。
I currently have a UIActivityIndicator
appearing on screen for a second or two. I would like to set grey out the background as this appears on screen but I am not sure how to do this...
Here's how I have initialized the indicator so far.
- (void)viewDidLoad
{
//...
activity = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 32.0f, 32.0f)];
[activity setCenter:CGPointMake(160.0f, 208.0f)];
[activity setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleGray];
[self.tableView addSubview:activity];
[activity startAnimating];
[activity performSelector:@selector(stopAnimating) withObject:nil afterDelay:1.0];
}
Any help would be greatly appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

发布评论
评论(9)
您应该查看 SVProgressHUD
它具有用于遮盖背景的选项,并且使用起来非常简单。
SVProgressHUDMaskType 有以下选项
enum {
SVProgressHUDMaskTypeNone = 1, // allow user interactions, don't dim background UI (default)
SVProgressHUDMaskTypeClear, // disable user interactions, don't dim background UI
SVProgressHUDMaskTypeBlack, // disable user interactions, dim background UI with 50% translucent black
SVProgressHUDMaskTypeGradient // disable user interactions, dim background UI with translucent radial gradient (a-la-alertView)
};`
尝试这个简单的方法
Its working well for me....
- (void)viewDidLoad
{
UIActivityIndicatorView *activityIndicator= [[UIActivityIndicatorView alloc]initWithFrame:CGRectMake(0, 0, 50, 50)];
activityIndicator.layer.cornerRadius = 05;
activityIndicator.opaque = NO;
activityIndicator.backgroundColor = [UIColor colorWithWhite:0.0f alpha:0.6f];
activityIndicator.center = self.view.center;
activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyleGray;
[activityIndicator setColor:[UIColor colorWithRed:0.6 green:0.8 blue:1.0 alpha:1.0]];
[self.view addSubview: activityIndicator];
}
实际上,我认为你可以做得更简单:)
[_activityIndicator setBounds:self.view.frame];
[_activityIndicator setCenter:self.view.center];
[_activityIndicator setAlpha:0.5f];
[_activityIndicator startAnimating];
你可以在情节提要中设置背景颜色,或者使用以下命令以编程方式进行设置:
UIColor *activityBackgroundColor = [UIColor colorWithRed:0.6 green:0.8 blue:1.0 alpha:1.0];
[_activityIndicator setColor:activityBackgroundColor];
确保在 Xcode 的属性检查器中选中“停止时隐藏”,并选择活动指示器。
更简单的是,您可以将图层背景颜色设置为半透明黑色(或任何其他颜色):
self.activityIndicatorView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
self.activityIndicatorView.layer.backgroundColor = [[UIColor colorWithWhite:0.0f alpha:0.5f] CGColor];
self.activityIndicatorView.hidesWhenStopped = YES;
self.activityIndicatorView.frame = self.view.bounds;
[self.view addSubview:self.activityIndicatorView];
当然,不要忘记:
#import <QuartzCore/QuartzCore.h>
这样微调器也将保持不透明。
@SVMRAJESH 在 Swift 2.0 中回答
let loadingIndicator = UIActivityIndicatorView(frame: CGRectMake(0, 0, 50, 50))
loadingIndicator.layer.cornerRadius = 05
loadingIndicator.opaque = false
loadingIndicator.backgroundColor = UIColor(white: 0.0, alpha: 0.6)
loadingIndicator.center = self.view.center;
loadingIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.Gray
loadingIndicator.color = UIColor(red:0.6,green:0.8,blue:1.0,alpha:1.0)
loadingIndicator.startAnimating()
self.view.addSubview(loadingIndicator)
Swift 3
设置背景颜色
activityIndicatorView.backgroundColor = UIColor.gray // Set Activity indicator backgroundColor
创建和配置活动指示器
var activityIndicatorView : UIActivityIndicatorView! // Declare variable to hold activity indicator
在 viewDidLoad 中,调用下面的方法来创建和配置活动指示器,也不要忘记添加到视图中(您希望在其中显示活动指示器)通过在 viewDidLoad 中调用 view.addSubview(activityIndicatorView)
。还对其设置约束。
func createAndconfigureActivityIndicatorView() {
activityIndicatorView = UIActivityIndicatorView(activityIndicatorStyle: .white)
activityIndicatorView.backgroundColor = UIColor.gray // Set Activity indicator backgroundColor
activityIndicatorView.startAnimating() // To start animation
activityIndicatorView.hidesWhenStopped = true // Setting this true means, when you stop the activity indicator, its automatically hidden (see below)
}
// Stops and Hides Activity Indicator
activityIndicatorView.stopAnimating()
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
不需要单独的视图。这是一个简单的机制:
No need for a separate view. Here's a simple mechanism: