从 XIB 文件创建的 UIView 未显示
UIView created from XIB file is not showing
我在我的项目中创建了一个 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
中,该 UIStackView
已经有一些视图,例如 UILabel
或 UIScrollView
。但是当我 运行 应用程序时,添加的视图没有显示,这是结果
有什么问题?
一个可能的原因是你没有指定视图的高度,所以在渲染过程中它的高度变为0。有两种方法:
将 stackView 的对齐方式设置为 .fillEqually。您可以这样做,因为标签具有非 0 的固有高度。
stackView.distribution = .fillEqually
告诉 iOS 如何计算视图的高度。例如覆盖 intrinsicContentSize
视图
我在我的项目中创建了一个 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
中,该 UIStackView
已经有一些视图,例如 UILabel
或 UIScrollView
。但是当我 运行 应用程序时,添加的视图没有显示,这是结果
有什么问题?
一个可能的原因是你没有指定视图的高度,所以在渲染过程中它的高度变为0。有两种方法:
将 stackView 的对齐方式设置为 .fillEqually。您可以这样做,因为标签具有非 0 的固有高度。
stackView.distribution = .fillEqually
告诉 iOS 如何计算视图的高度。例如覆盖
intrinsicContentSize
视图