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

3
我正在尝试使用以下代码将旋转器置于页面中央。
self.aSpinner.center = self.view.center;

然而当我运行程序时,旋转图标似乎不在中心。Screen shot of iPad simulator; activity indicator in blank view 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视图的大小设置为与父视图相等?


你确定你的视图居中吗?能否提供更多的代码上下文? - csano
3个回答

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

2

仅设置中心属性可能不足够。如果您的框架正在调整大小,我还将设置旋转器视图的自动调整大小掩码:

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

1

尝试在 ViewDidAppear 上执行此操作,这样可以正确获取视图的 self.bounds,我不会检查 self.center。

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

工作正常! 检查自身是否具有视图或自身是否是视图


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接