代码之家  ›  专栏  ›  技术社区  ›  Amir_P

从XIB文件创建的UIView未显示

  •  2
  • Amir_P  · 技术社区  · 8 年前

    我在我的项目中创建了一个XIB文件,看起来像这样

    enter image description here

    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 . 但是当我运行应用程序时,添加的视图没有显示,下面是结果 enter image description here enter image description here

    怎么了?

    1 回复  |  直到 7 年前
        1
  •  1
  •   ukim    8 年前

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

    1. 将stackView的对齐设置为.fillequality。你可以这样做,因为标签有非0的内在高度。

      stackView.distribution=.fillequality

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