为什么iPhone Interface Builder不允许我设置顶级UIView的X,Y坐标?

时间:2008-12-10 20:57:28

标签: cocoa-touch interface-builder

为什么iPhone Interface Builder不允许我设置顶级UIView的X,Y坐标? (含义,直接父级为UIViewController的视图。)“视图大小”选项卡上的X和Y框显示为灰色。我可以在运行时更改代码中的X,Y值,那么为什么不在Interface Builder中呢?

感谢。

3 个答案:

答案 0 :(得分:4)

因为UIViewController拥有的视图填充了其父级中的可用空间。其父级可以是UIWindow,也可以是由UINavigationControllerUITabBarController控制的视图。它会为您定位视图。如果您想控制视图的位置,请将其设为由UIViewController控制的视图的子视图。

答案 1 :(得分:1)

我同意这是IB中缺少的功能。对于基本用法,即创建单个顶级视图以放置在标准视图控制器中,当然不必设置视图原点。但是,NIB旨在能够在任意对象图中保存任意数量的顶级视图。由于这允许您以任何您认为合适的方式使用这些视图,包括以编程方式将它们嵌入到任何其他视图中,因此在IB中锁定这些控件是不必要的约束。在一个相关但有趣的注释中,如果您将定位视图移动到顶层,IB本身会记住其相对位置以用于显示目的。但是,一旦加载NIB,此位置就不可用。

答案 2 :(得分:1)

在Xcode 4.3.2中,您可以在属性检查器中选择size->自由形式。