使用Storyboard将自定义UIView的子视图的AutoLayout约束添加到其他视图?

时间:2016-01-17 03:36:04

标签: ios uiview storyboard xib

创建自定义UIView后,如何使用Storyboard将其子视图的AutoLayout约束添加到自定义UIView之外的视图/组件?

在下面的示例中,SliceView代表自定义UIView。在.xib文件中有一个UILabel

添加新的UIView并将其类设置为SliceView后,新视图在Storyboard中看起来相同。它没有继承SliceView.的子视图和属性。下面的两个屏幕截图说明了SliceView.xib中的视图层次结构以及将UIView转换为SliceView之后的方式,层次结构在故事板中保持不变。

因此,如果您想要添加一个约束在SliceView标签上方10个像素的按钮,那么如何在Storyboard中执行此操作?

class SliceView: UIView {
    @IBOutlet var storyboardView: UIView!
    @IBOutlet weak var captionLabel: UILabel!


    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)

        if let nibsView = NSBundle.mainBundle().loadNibNamed("SliceView", owner: self, options: nil) as? [UIView] {
            let nibRoot = nibsView[0]
            self.addSubview(nibRoot)
            nibRoot.frame = self.bounds
        }
    }
}

故事板视图层次结构:

After adding SliceView

SliceView查看层次结构:

enter image description here

0 个答案:

没有答案