如何在Swift中包装自定义视图中的内容

如何在Swift中包装自定义视图中的内容,swift,xib,Swift,Xib,我创建了一个包含一些子视图的xib文件。我设置了子视图的宽度和高度 有一个类继承了UIView。此类名为CustomUIView。然后我将该类设置为该xib文件的文件所有者。 现在我想将这个xib文件添加到情节提要中的视图控制器中。因此,我添加了一个UIView并将其类设置为CustomUIView 但是我必须为这个视图设置宽度和高度。我设置了引导和顶部约束。但我希望根据子视图的高度和宽度设置其高度和宽度。 我该怎么做呢如果您已经为每个元素在xib中设置了宽度和高度锚定,则不必为视图设置宽度和高

我创建了一个包含一些子视图的xib文件。我设置了子视图的宽度和高度

有一个类继承了
UIView
。此类名为
CustomUIView
。然后我将该类设置为该xib文件的文件所有者。

现在我想将这个xib文件添加到情节提要中的视图控制器中。因此,我添加了一个UIView并将其类设置为
CustomUIView

但是我必须为这个视图设置宽度和高度。我设置了引导和顶部约束。但我希望根据子视图的高度和宽度设置其高度和宽度。

我该怎么做呢

如果您已经为每个元素在xib中设置了宽度和高度锚定,则不必为视图设置宽度和高度锚定

结果


设置前导和尾随约束以确定宽度。设置顶部和底部约束以确定高度。请阅读Autolayout@user1046037谢谢但是我在自定义视图的子视图中设置了这些,我不想再次设置它们。谢谢。确切地我需要它这样做。但当我设置轻触手势识别器时,只有当我指定宽度和高度时,它才能工作。否则就不行了。自动布局显示错误,它需要该视图的宽度和高度
override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    let v = (Bundle.main.loadNibNamed("hhhh", owner: self, options: nil))?[0] as! hhhh;

    view.addSubview(v)

    v.translatesAutoresizingMaskIntoConstraints = false

    v.topAnchor.constraint(equalTo:self.view.topAnchor,constant:30).isActive = true

    v.leadingAnchor.constraint(equalTo:self.view.leadingAnchor,constant:30).isActive = true


}