活动指示器不在子视图的中心(与父视图的大小不同)

时间:2011-06-04 03:40:35

标签: objective-c cocoa-touch ios uiactivityindicatorview

我正在尝试使用下面的代码将微调器置于页面中间。

self.aSpinner.center = self.view.center;

然而,当我运行程序时,微调器似乎不在中心

Screen shot of iPad simulator; activity indicator in blank view to right of center

有什么方法可以解决这个问题吗?

编辑:

我发现了问题。并不是微调器不在中心,而是子视图的界限不同于超级视图。

Screenshot of iPad simulator; view with subviews and activity indicator to right of center

我在我的代码中做了类似的事情:

self.navcon = [[UINavigationController alloc]init];
self.photoViewTable = [[PhotoTableViewController alloc]init];
self.loadingPage = [[LoadingPageViewController alloc]init];

[self.photoViewTable.view addSubview:loadingPage.view];

[navcon pushViewController:photoViewTable animated:NO];
[self.window addSubview:navcon.view];

如何将loadingPage视图的大小设置为等于父视图?

3 个答案:

答案 0 :(得分:9)

[spinner setCenter:CGPointMake(kScreenWidth/2.0, kScreenHeight/2.0)];

答案 1 :(得分:1)

设置中心属性可能还不够。如果您的帧正在调整大小,我还将设置微调器视图的自动调整大小:

spinner.autoresizingMask = (UIViewAutoresizingFlexibleLeftMargin |
                                              UIViewAutoresizingFlexibleRightMargin |
                                              UIViewAutoresizingFlexibleTopMargin |
                                              UIViewAutoresizingFlexibleBottomMargin);
spinner.center = CGPointMake(CGRectGetWidth(self.view.bounds)/2, CGRectGetHeight(self.view.bounds)/2);

答案 2 :(得分:1)

尝试在ViewDidAppear上进行,有正确的self.bounds视图 我不检查self.center。

self.aSpinner.center = CGPointMake(self.view.bounds.width/2.0, self.view.bounds.width/2.0)

工作正确! 检查自己有视图或自我视图