如何将activityindicator置于tableview的中间位置

时间:2013-08-01 04:47:58

标签: ios uitableview center uiactivityindicatorview

我已经设置了活动指标

 spinner.center = CGPointMake( [UIScreen mainScreen].bounds.size.width/2,[UIScreen mainScreen].bounds.size.height/2);
[self.view addSubview:spinner];

但是这在桌面视图中没有正确居中。因为表视图可以滚动。 如何将微调器放在屏幕中央。

5 个答案:

答案 0 :(得分:9)

尝试使用以下代码: -

    spinner.center = CGPointMake( [UIScreen mainScreen].bounds.size.width/2,[UIScreen mainScreen].bounds.size.height/2);
    yourAppdelegateClass *appDelegate = (yourAppdelegateClass*)[[UIApplication sharedApplication] delegate];
    [appDelegate.window addSubview:spinner];

代码输出为: -

enter image description here

答案 1 :(得分:4)

试试这个:

spinner.center = tableview.center;

希望它能帮助!!

答案 2 :(得分:1)

我认为你应该在表视图而不是sel.view上添加你的指示符(Spinner)。 并在指示器上定义区域框架。

希望这会对你有所帮助。

答案 3 :(得分:1)

我有另一种解决方案,因为我必须在细节视图控制器上放置一个微调器。也许它会对某人有所帮助。

- (void)viewDidLoad {
    [super viewDidLoad];
    self.spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
    self.spinner.hidesWhenStopped = YES;
    [self.navigationController.view addSubview:self.spinner];
}

定位:

-(void)viewDidLayoutSubviews
{  
    [super viewDidLayoutSubviews];
    [self.navigationController.view setNeedsLayout];
    [self.navigationController.view layoutIfNeeded];
    self.spinner.frame = CGRectMake(self.view.frame.size.width / 2, self.view.frame.size.height / 2, 10, 10);
}

在细节视图控制器中,微调器将始终位于表视图的中心。

答案 4 :(得分:-1)

请在下面找到代码:

UIActivityIndicatorView* spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
spinner.center = CGPointMake( [UIScreen mainScreen].bounds.size.width/2,[UIScreen mainScreen].bounds.size.height/2);
AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
[spinner startAnimating];
[appDelegate.window addSubview:spinner];