【发布时间】:2014-11-24 06:27:10
【问题描述】:
在上面的视图中,viewB 是使用 xib 创建的 viewA 的子视图,并且在 xib 中也添加了约束。 viewB 具有相对于其父视图的顶部、底部、前导和尾随约束。文件所有者是快速视图控制器。 viewB 与文件所有者连接
@IBOutlet weak var viewB: UIView!
但是当我在运行 iOS 8 的 iPAD 中运行项目时,viewB 不可见? (在 iPhone 中可见) 我试图在 viewdidLoad & viewDidAppear 中访问它的框架,它是 (0.0,0.0,0.0,0.0)
这是我项目中唯一的 swift 视图控制器,所有其他视图和 VC 都在 objc 中。
这是 swift 中的错误还是我试图做错什么?
【问题讨论】:
-
您是否为视图 A 及其父视图设置了顶部、底部、前导和尾随约束?
-
@diegomen 是的,它是使用 VFL 以编程方式分配的
-
这些视图是如何创建的?在 xib / 故事板或代码中?你在使用尺寸等级吗?另请注意, viewDidLoad 太早无法查看框架,您需要等到布局 - 尽管 didAppear 对此很好。检查时A视图的框架是什么?
-
它是使用xib创建的,在xib中也添加了约束。我没有使用尺码等级。 viewDidAppear 中的 viewA = (0.0,128.0,768.0,896.0) 的 frameOf
-
@Clement 很高兴您自己找到了答案(这总是更好的做法)。但不要将答案添加到问题主体本身。请将其添加为单独的答案。您可以在 SO 中回答您自己的问题。
标签: ios swift uiview autolayout size-classes