创建自定义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
}
}
}
故事板视图层次结构:
SliceView
查看层次结构: