如何在3.5"和4"Retina的界面生成器中定位视图



我想定位UIView,使其在3.5"和4"Retina屏幕的中心显示。最好的方法是什么?如果我关闭所有的自动调整条,我会希望它与屏幕中心对齐,但这似乎没有发生。

我很高兴使用新的Autolayout,但我也不知道如何使用它。

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

  1. 要实现iOS4的无缝兼容性,请首先将俯视图大小设置为Retina 3.5大小。

  2. 删除俯视图的尺寸参数并将其设置为"none"。您现在应该有一个具有正确大小但没有固定设置大小选项的主视图。

  3. 打开"尺寸检查器"选项卡下俯视图的所有垂直自动尺寸。

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

    • 选择视图并转到"尺寸检查器"选项卡
    • 选择排列(垂直居中或对齐)
    • 如果要居中,请删除"自动调整大小"框中的两个对齐标记。如果你想让它"粘稠",请选择其中一个,如果你想填充父对象,请同时选择两个
    • 通过高亮显示或取消高亮显示垂直"双箭头"来选择是否应相对调整其大小
    • 在这一点上,确保所有元素都位于3.5英寸视图中的预期位置——这对iOS4的工作至关重要
  5. 保存您的更改。选择顶部视图并选择尺寸:"Retina 4 Full Screen",检查您是否成功进行了自动重影。执行此操作时,您的视图应该与预期结果相似。

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

这也适用于iOS4,因为视图的大小已经适应了Retina 3.5,因此旧屏幕大小不使用自动缩放。

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

使用自动布局将视图居中显示在IB中的父(容器)视图中:

  • 选择您的视图
  • 转到菜单,选择"编辑器"->"对齐"->"容器中的水平/垂直中心"选项

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

以下是手动(无自动布局)的操作方法:

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];

最新更新