如何从 XIB 文件加载自定义创建的视图并添加到 StackView

Posted

技术标签:

【中文标题】如何从 XIB 文件加载自定义创建的视图并添加到 StackView【英文标题】:How to load Custom Created view from XIB file and add to StackView 【发布时间】:2019-09-03 21:13:25 【问题描述】:

我有一个 XIB 文件,其中有 UIView 类型的类,我不会在根 ViewController 中加载那个 XIB:

导入 UIKit

类视图控制器:UIViewController

// MARK: - Variables


// MARK: - IBOutlets

@IBOutlet private weak var mainStackView: UIStackView!


// MARK: - LifeCycle Methods

override func viewDidLoad() 
    super.viewDidLoad()


    if let view = CustomView.instanceFromNib() 

    let view = CustomView.instanceFromNib() as! CustomView
        mainStackView.addArrangedSubview(view)
        mainStackView.addArrangedSubview(view)
        mainStackView.addArrangedSubview(view)
       

导入基础 导入 UIKit

自定义视图类:UIView

static let id = "CustomView"


@IBOutlet weak var backgroundImageView: UIImageView!

override func awakeFromNib() 
    super.awakeFromNib()


static func instanceFromNib() -> UIView 
    return UINib(nibName: "UserReview", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! UIView


override init(frame: CGRect) 
    super.init(frame: frame)



required init?(coder aDecoder: NSCoder) 
    super.init(coder: aDecoder)

这个类与键 backgroundImageView 的键值编码不兼容。'

【问题讨论】:

【参考方案1】:

您是 Xib 文件的文件所有者吗?将CustomView 类分配给 Xib 文件的所有者

【讨论】:

以上是关于如何从 XIB 文件加载自定义创建的视图并添加到 StackView的主要内容,如果未能解决你的问题,请参考以下文章

从 XIB 加载自定义视图,如何使其响应自定义子类?

如何获取从 nib ios 加载的自定义视图的实际大小

如何响应从 xib 加载的自定义视图中发生的操作?

从 xib 添加自定义视图作为子视图时,UITableViewCell 的高度错误

如何使用 xib 文件正确创建自定义单元,注册并加载它?

以编程方式将一堆自定义视图从 XIB 添加到 UIStackView