2

可能重复: iOS SDK:通过代码UIImageView
将按钮移动到屏幕中心。
缩放并居中到任意矩形。无法确定屏幕上的正确中心

我正在尝试将 UIActivityIndi​​cator 集中在 UIWebView 中(它又是 UIScrollView 的子视图,左侧也有 UIToolbar 元素 - 尽管左侧工具栏并不总是可见)

以前也有人问过类似的问题,但重点是“动态地”找到中心,即关于方向的变化以及左侧工具栏的存在或不存在。

最好的方法是什么?有没有比重写方法更好的方法来做到这一点shouldAutorotateToInterfaceOrientation

4

2 回答 2

11

顺便说一句,中心是什么?

您可以访问 UIViewController 的中心self.view.center

或者在您的情况下,UIWebView 的中心为yourwebView.center

通过给它调整左上角元素的大小,activityindicator 将始终居中。

编辑 :

如果您想要通过帧获得的屏幕中心,例如

考虑宽度和高度 30、30 的活动指示器。

(([UIScreen mainScreen].bounds.size.width)/2 - 15, ([UIScreen mainScreen].bounds.size.height)/2 - 15, 30, 30);

然后,将 autoresizing 元素设置为 none。

转到 size Inspector 并从 Auto-sizing 功能中删除所有箭头。

在此处输入图像描述

于 2012-10-26T14:52:03.567 回答
1

您的问题没有通用的解决方案。这是因为只有您知道要忽略视图中的哪个元素。无论您添加什么元素,视图始终保持不变。因此,我建议为您认为清除/空/可用的视图部分获取一个矩形,并在其中设置加载指示器。只需获取视图的整个框架(self.view.frame.size.height)并从中减去任何元素。例如

MyIndicator *indicator = [[MyIndicator alloc] initWithFrame:CGRectMake(self.toolbar.frame.size.width + self.toolbar.frame.origin.x, self.topBar.frame.size.height + self.topBar.frame.origin.y, self.view.frame.size.width - self.toolbar.frame.size.width - self.toolbar.frame.origin.x, self.view.frame.size.height - self.topBar.frame.size.height - self.topBar.frame.origin.y)];
于 2012-10-26T15:08:13.857 回答