微调器(UIActivityIndicator)不';无法在iOS中显示

微调器(UIActivityIndicator)不';无法在iOS中显示,ios,ios8,xcode6,Ios,Ios8,Xcode6,我想在从url下载文件时显示微调器。它下载文件,但不显示微调器。标签也不在中心。 我怎样才能到达中心 我已经尝试使用self.view.center,但不起作用 代码 请给它点颜色……每当我想显示活动指示器时,我都会调用此方法 - (void) showActivityIndicator{ self.spinner.hidden=NO; [self.spinner startAnimating]; [self.view bringSubviewToFront:s

我想在从url下载文件时显示微调器。它下载文件,但不显示微调器。标签也不在中心。 我怎样才能到达中心

我已经尝试使用self.view.center,但不起作用

代码


请给它点颜色……

每当我想显示活动指示器时,我都会调用此方法

 - (void) showActivityIndicator{

    self.spinner.hidden=NO;


    [self.spinner startAnimating];

    [self.view bringSubviewToFront:self.spinner];

    [self.view setNeedsDisplay];


    }
这是我的viewDidLoad方法

 - (void)viewDidLoad{
        [super viewDidLoad];
       // Do any additional setup after loading the view.

       self.spinner= [[UIActivityIndicatorView alloc]       initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];

       self.spinner.frame = CGRectMake(0.0, 0.0, 40.0, 40.0);

       [self.spinner setCenter:self.view.center]; // I do this because I'm in      landscape mode
       [self.view addSubview:self.spinner];

       self.spinner.hidesWhenStopped=YES;

}
这就是我所说的函数

        [NSThread detachNewThreadSelector:@selector(showActivityIndicator) toTarget:self withObject:nil];

您没有设置容器的框架。我猜你是说:

activityIndicator.frame=CGRectMake(30,55,225,50)

而不是

container.frame=CGRectMake(30,55,225,50)

要将容器置于中心,请执行以下操作:

container.center=self.view.center;
在代码中,您将容器放在其中心。

代码

-(void)startAnimating{
UIView *  container = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
container.center = self.view.center;
container.backgroundColor = [UIColor colorWithRed:0.9 green:0.9 blue:0.9 alpha:0.4];
container.layer.cornerRadius = 10;
container.layer.masksToBounds = true;
container.tag = 134;
UILabel * activityLabel = [[UILabel alloc] init];
activityLabel.frame = CGRectMake(0, 70, 100, 30);
activityLabel.text = @"Description";
activityLabel.textColor = [UIColor darkGrayColor];
activityLabel.textAlignment = NSTextAlignmentCenter;
activityLabel.font = [UIFont boldSystemFontOfSize:10];
[container addSubview:activityLabel];


UIActivityIndicatorView *  activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
activityIndicator.center = CGPointMake(container.frame.size.width/2, container.frame.size.height/2);
[container addSubview:activityIndicator];

[self.view addSubview:container];

[activityIndicator startAnimating];
}

-(void)stopAnimating{
    UIView * containView = [self.view viewWithTag:134];
    [containView removeFromSuperview];
 }
要启动时,请调用
[self startAnimating]

要停止时,只需调用
[自动停止动画]

截图


这是viewDidLoad方法吗?在[self.view addSubview:container]之前调用这两行;container.center=self.view.center;activityIndicator.center=CGPointMake(container.frame.size.width/2,container.frame.size.height/2);谢谢Leo…它可以工作…但我如何才能使它成为中心…它在iphone4s和iphone6中都不在中心…您必须将
containView
的中心设置为to
self.view.center
的中心,还有一个问题…下载完成后如何隐藏容器和标签…旋转器停止。。。我可以更改微调器的颜色而不是白色/黑色/灰色吗?是否希望标签位于中心?通常它应该是中心的微调器
-(void)startAnimating{
UIView *  container = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
container.center = self.view.center;
container.backgroundColor = [UIColor colorWithRed:0.9 green:0.9 blue:0.9 alpha:0.4];
container.layer.cornerRadius = 10;
container.layer.masksToBounds = true;
container.tag = 134;
UILabel * activityLabel = [[UILabel alloc] init];
activityLabel.frame = CGRectMake(0, 70, 100, 30);
activityLabel.text = @"Description";
activityLabel.textColor = [UIColor darkGrayColor];
activityLabel.textAlignment = NSTextAlignmentCenter;
activityLabel.font = [UIFont boldSystemFontOfSize:10];
[container addSubview:activityLabel];


UIActivityIndicatorView *  activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
activityIndicator.center = CGPointMake(container.frame.size.width/2, container.frame.size.height/2);
[container addSubview:activityIndicator];

[self.view addSubview:container];

[activityIndicator startAnimating];
}

-(void)stopAnimating{
    UIView * containView = [self.view viewWithTag:134];
    [containView removeFromSuperview];
 }