为什么iPhone Interface Builder不允许我设置顶级UIView的X,Y坐标? (含义,直接父级为UIViewController的视图。)“视图大小”选项卡上的X和Y框显示为灰色。我可以在运行时更改代码中的X,Y值,那么为什么不在Interface Builder中呢?
感谢。
答案 0 :(得分:4)
因为UIViewController
拥有的视图填充了其父级中的可用空间。其父级可以是UIWindow
,也可以是由UINavigationController
或UITabBarController
控制的视图。它会为您定位视图。如果您想控制视图的位置,请将其设为由UIViewController
控制的视图的子视图。
答案 1 :(得分:1)
我同意这是IB中缺少的功能。对于基本用法,即创建单个顶级视图以放置在标准视图控制器中,当然不必设置视图原点。但是,NIB旨在能够在任意对象图中保存任意数量的顶级视图。由于这允许您以任何您认为合适的方式使用这些视图,包括以编程方式将它们嵌入到任何其他视图中,因此在IB中锁定这些控件是不必要的约束。在一个相关但有趣的注释中,如果您将定位视图移动到顶层,IB本身会记住其相对位置以用于显示目的。但是,一旦加载NIB,此位置就不可用。
答案 2 :(得分:1)
在Xcode 4.3.2中,您可以在属性检查器中选择size->自由形式。