8

我想定位一个 UIView,使其出现在 3.5 英寸和 4 英寸 Retina 屏幕的中心。做这个的最好方式是什么?如果我关闭所有 Autosizing 条,我希望它与屏幕中心对齐,但这似乎不会发生。

我很高兴使用新的 Autolayout,但我也不知道如何让它做到这一点。

4

3 回答 3

21

为您的 XIB 执行以下步骤,您应该为您的视图获得正确的调整大小:

  1. 为了无缝兼容 iOS4,首先将顶视图大小设置为 Retina 3.5 大小。

  2. 移除顶视图的尺寸参数并将其设置为“无”。您现在应该有一个大小正确但没有固定设置大小选项的主视图。

  3. 在“尺寸检查器”选项卡下为顶视图打开所有垂直自动调整大小。

  4. 对于每个子视图,请执行以下操作

    • 选择视图并转到 Size Inspector 选项卡
    • 选择排列(垂直居中或对齐)
    • 如果您希望它居中,请删除 Autosizing 框中的两个对齐标记。如果您希望它“粘性”,请选择其中之一,如果您希望它填充父母,请选择两者。
    • 通过突出显示或取消突出显示垂直的“双尖箭头”来选择是否应相对调整大小
    • 确保此时所有元素都位于 3.5" 视图中的预期位置 - 这对于它在 iOS4 上的工作至关重要。
  5. 保存您的更改。通过选择顶视图并选择大小来检查您的自动调整大小是否成功:“Retina 4 Full Screen”。执行此操作时,您的视图应该看起来像您的预期结果。

  6. 撤消 5 中的更改(使 xib 中的视图再次具有 3.5 大小,但大小选项设置为“无”,保存并运行您的应用程序。

这也适用于 iOS4,因为视图的大小已经针对 Retina 3.5 进行了调整,因此旧屏幕大小没有使用自动调整大小。

在某些情况下,不可能为所有元素获得正确的尺寸/位置。在这些情况下,您需要以编程方式更改 4" 屏幕尺寸的视图尺寸位置。

于 2012-11-22T16:38:48.653 回答
3

在 IB 中使用自动布局在其父(容器)视图中居中视图:

  • 选择您查看
  • 转到菜单并选择 Editor->Align->Horizo​​ntal/Vertical Center in Container 选项

但是,仅当您支持 iOS 6 及更高版本时才能使用自动布局,如果您针对较早的操作系统版本,则必须使用其他方法(例如,使用 Eric 建议的代码设置居中视图)

于 2012-11-22T15:52:07.243 回答
0

以下是您手动操作的方法(不使用自动布局):

int screenWidth = [[UIScreen mainScreen] applicationFrame].size.height;
int screenHeight = [[UIScreen mainScreen] applicationFrame].size.width;

UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(0,0,100,200)];
[myView setCenter:CGPointMake(screenWidth/2, screenHeight/2)];

[self.view addSubview:myView];
于 2012-11-22T15:50:32.733 回答