【问题标题】:Auto layout + size classes issue in swiftswift中的自动布局+大小类问题
【发布时间】: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


【解决方案1】:

问题已解决。 它与 XIB 中的尺寸等级有关。向 Cw 和 Rh 尺寸添加了一个约束。 如果有人遇到这个问题,请检查 xib 的布局约束两次 :)

一个很好的参考:http://adoptioncurve.net/archives/2014/08/working-with-size-classes-in-interface-builder/

【讨论】:

    猜你喜欢
    • 2018-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多