ios - 自动布局 UIView Xcode 6 nib 文件

标签 ios swift uiview autolayout nib

我有一个 UIView,我在其中使用 autolayout 布置了各种 subview 。我在 interface builder 中以图形方式完成了此操作,布局在所有尺寸的设备的预览中都能正常工作。

UIView 子类 没有覆盖任何默认方法的代码。

然后我使用以下代码将此 UIView 加载到我的 UIView Controller 中:

self.view.addSubview(UIView.loadFromNibNamed("SCPortraitCamera"))
self.view.setTranslatesAutoresizingMaskIntoConstraints(false)

let widthConstraint = NSLayoutConstraint(item: self.view, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.Width, multiplier: 1, constant: self.view.frame.width)
let heightConstraint = NSLayoutConstraint(item: self.view, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.Height, multiplier: 1, constant: self.view.frame.height)
self.view.addConstraint(widthConstraint)
self.view.addConstraint(heightConstraint)

这是在 viewdidLoad 中完成的。

UIView 显示正确,但它看起来不像任何 UIView subview 正在使用界面生成器中设置的自动布局约束。

非常感谢任何帮助。

最佳答案

有几个问题:

  • 系统无法创建明确的布局。 (经验法则 - 您应该为每个维度至少创建 2 个约束)
  • 你不应该将你的 View 限制在它自己的大小。
  • 添加 subview 后,您应该引用它,以创建相对约束

    您可以引用这个指南:Autolayout Guide
    或者这个问题:What is auto layout?

    希望对您有所帮助。

  • 关于ios - 自动布局 UIView Xcode 6 nib 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28014393/

    相关文章:

    ios - 如何使按钮闪烁或闪烁?

    ios - MailCore2,仅获取未读消息,或者知道哪些是未读消息

    ios - 如果在 Swift 中为日期选择器设置了间隔,则从日期选择器获取当前时间

    ios - firebase 期望在我的 osx 钥匙串(keychain)中找到什么?

    ios - moveRowAt IndexPath 在 Swift 2 中使用核心数据

    swift - 按字符串化 JSON 数组属性中包含的值过滤图层

    ios - 通过用户 ID 或某个唯一 ID :Issue 获取 PFInstallation

    ios - 创建全局 UIView

    ios - 以编程方式将 UINavigationBar 添加到 UIView?

    ios - 如何修复 iOS Storyboard 中的不等式约束模糊性?