有导航栏时将活动指示器居中

时间:2017-03-17 12:00:48

标签: ios objective-c iphone uiactivityindicatorview

我无法将活动指示器置于高度的中心位置。在添加导航控制器之前很好,之后它是水平居中但不是垂直居中。这是照片和代码。

picture

这是没有导航控制器时居中的代码。

_loadingView.center = self.view.center;
[self.view addSubview:_loadingView];

请帮忙。谢谢!!

5 个答案:

答案 0 :(得分:1)

UIViewController的视图在其父坐标空间中报告其center坐标,这就是它垂直偏移导航栏高度的原因。

如果您想以与现在相似的方式放置指标,请自行计算中心坐标:

CGPoint center = CGPointMake(self.view.bounds.size.width / 2.0, self.view.bounds.size.height / 2.0) _loadingView.center = center; [self.view addSubview:_loadingView];

每当主视图的边界发生变化时,请务必更新此内容,即在另一个答案中提及的-viewDidLayoutSubviews中。

但是,通过采用Auto Layout并设置两个中心约束(每个轴一个),可以更新和简化这一切。您可以在Interface Builder模式或代码中执行此操作,请查看文档。

答案 1 :(得分:0)

您可以尝试这种方式请点击以下链接

- (void) viewDidLayoutSubviews {    

    _loadingView.center = self.view.center; 

}

https://stackoverflow.com/a/11587804/5184217

答案 2 :(得分:0)

它可以帮助您解决问题

_loadingView = CGPointMake(self.view.frame.size.width / 2.0, (self.view.frame.size.height - navigationBarHeight - tabBarHeight) / 2.0)

[self.view addSubview:_loadingView];

答案 3 :(得分:0)

在属性检查器的顶部栏下检查导航控制器和视图控制器。

enter image description here

答案 4 :(得分:0)

试试这个

style

它的不同观点