Swift 从XIB文件创建的UIView未显示

Swift 从XIB文件创建的UIView未显示,swift,xcode,storyboard,xib,Swift,Xcode,Storyboard,Xib,我在我的项目中创建了一个xib文件,如下所示 我正在用这个代码初始化它 class MainItem: UIView { class func instanceFromNib() -> UIView { let view = UINib(nibName: "MainItem", bundle: nil).instantiate(withOwner: nil, options: nil).first as! UIView return view

我在我的项目中创建了一个xib文件,如下所示

我正在用这个代码初始化它

class MainItem: UIView {
    class func instanceFromNib() -> UIView {
        let view = UINib(nibName: "MainItem", bundle: nil).instantiate(withOwner: nil, options: nil).first as! UIView
        return view
    }
}

stackView.addArrangedSubview(MainItem.instanceFromNib())
我将它添加到一个
UIStackView
中,它已经有了一些视图,比如
UILabel
UIScrollView
。但当我运行应用程序时,添加的视图不会显示,结果如下


问题是什么?

一个可能的原因是您没有指定视图的高度,因此在渲染过程中视图的高度变为0。有两种方法可以做到这一点:

  • 将stackView的对齐方式设置为.FillView。您可以这样做,因为标签具有非0的固有高度

    stackView.distribution=.FillView

  • 告诉iOS如何计算视图的高度。例如,覆盖视图的
    intrinsicContentSize


  • 如何添加MainItem,可以这样修改代码吗?您使用错误,请阅读以下内容:我以这种方式编辑了我的代码@ukimIn,我仍然得到相同的结果@vivekDasI在添加之前打印初始化视图的高度,如果没有约束,则高度可以在添加后更改@Amir_P您是否也可以发布配置堆栈视图的代码?我已经为内部视图添加了高度约束。配置是从故事板完成的(垂直轴与中心对齐和填充分布)好的,你是对的,没有高度限制,但我记得我已经添加了它。现在修好了