Autolayout UIView Xcode 6 nib文件

时间:2015-01-18 20:18:37

标签: ios swift uiview autolayout nib

我有一个UIView,我使用autolayout列出了各种子视图。我在interface builder中以图形方式完成了这项工作,所有设备尺寸的布局均可正常使用。

UIView subclass没有代码可以覆盖任何默认方法。

然后我使用以下代码在我的UIView控制器中加载这个UIView:

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子视图使用界面构建器中设置的自动布局约束。

任何帮助都非常感激。

1 个答案:

答案 0 :(得分:0)

有几个问题:

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

    您可以参考本指南:Autolayout Guide
    或者对于这个问题:What is auto layout?

    希望这可以帮助你。