【问题标题】:iOS: Where is the top layout guide in Xib file Interface Builder?iOS:Xib 文件 Interface Builder 中的顶级布局指南在哪里?
【发布时间】:2016-12-12 22:55:00
【问题描述】:

我目前正在使用 swift 开发 iOS 应用程序。我想开发我的应用程序而无需故事板,只需使用 xib 文件并将我的视图和控制器与单独的组进行分组。但我意识到 xib 文件中缺少一个东西。我在 xib 文件中看不到顶部布局指南和底部布局指南。我想根据布局指南安排我的 UIControls。但是没有人吗?是否有另一种方法可以在不使用情节提要的情况下通过界面构建​​器的顶部布局指南设置约束?

提前致谢。

【问题讨论】:

  • 布局指南是视图控制器的一个属性。这个 xib 文件中的视图控制器在哪里?
  • 我的 xib 文件中没有 viewController。有没有办法在界面生成器中将视图控制器添加到 xib 文件?
  • 当然。但这不完全是我的意思。我的观点是,如果没有视图控制器,这个问题就毫无意义。如果你想对 nib 中的布局指南进行布局,你必须在 nib 中有一个视图控制器,因为它就是它的布局指南。
  • 我创建了一个自定义的视图控制器类,并将 xib 的文件所有者设置为视图控制器。但是我看到当我将视图控制器拖动到 xib 文件时,指南就出现了。通过将视图控制器拖动到 nib 在 nib 中具有视图控制器是什么意思?
  • "但是我看到当我将视图控制器拖到 xib 文件时,指南已经出现" 是的,因为视图控制器有布局指南。这是我第三次说了。

标签: ios iphone swift uikit


【解决方案1】:

这对我有用:

yourCustomView.topAnchor.constraint(equalTo: self.topLayoutGuide.bottomAnchor).isActive = true

从这里:Is there any way to add constraint between a view and the top layout guide in a xib file?

【讨论】:

    【解决方案2】:

    当通过“New File”路径创建 ViewController 类并勾选“Also create XIB file”时,Xcode 会生成一个带有 ViewController 的“View”的 xib 文件,因此没有顶部布局指南或底部布局指南(它们带有“视图控制器”)。

    如果需要布局指南,可以去掉“视图”,拖入一个“视图控制器”。记得在之后设置“视图控制器”的“类”字段。

    【讨论】:

    • 我这样做了,但得到了这个错误:('UIViewControllerHierarchyInconsistency',原因:'一个视图一次只能与一个视图控制器关联!视图关联到","清除此关联之前将此视图与") 关联。您确定可以将视图控制器对象放在另一个视图控制器 xib 中吗?stackoverflow.com/questions/13357788/…
    【解决方案3】:

    如果您不希望 ViewController 的整个视图在 UINavigationBar 存在时扩展到其下方。关闭 UIViewController 的edgesForExtendedLayout 属性。

    self.edgesForExtendedLayout = []
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-22
      • 2013-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-24
      • 2014-06-23
      相关资源
      最近更新 更多