【发布时间】:2020-08-10 08:30:41
【问题描述】:
我正在尝试制作可在情节提要中使用的自定义视图。事情是当视图被实例化时它崩溃了。我不明白错误或我可以指出错误的地方。这是我的问题的几个图像。
如果有人可以请帮助我。那将不胜感激。如果您需要更多详细信息,请告诉我在哪里可以找到您需要的详细信息,我可以为您获取。
【问题讨论】:
-
原因很清楚:出口
view是nil。你确定你想要一个具有相同类型插座的 UIView 的子类吗?
我正在尝试制作可在情节提要中使用的自定义视图。事情是当视图被实例化时它崩溃了。我不明白错误或我可以指出错误的地方。这是我的问题的几个图像。
如果有人可以请帮助我。那将不胜感激。如果您需要更多详细信息,请告诉我在哪里可以找到您需要的详细信息,我可以为您获取。
【问题讨论】:
view是nil。你确定你想要一个具有相同类型插座的 UIView 的子类吗?
还有另一种以编程方式初始化自定义视图的好方法。您需要进行以下操作:
1.为您的 UIView 类编写扩展
extension UIView {
class func initFromNib<T: UIView>() -> T {
return Bundle.main.loadNibNamed(String(describing: self), owner: nil, options: nil)?[0] as! T
}
}
2。创建与您的类名称同名的 .swift 和 .xib 文件:
3.在您的 FMTextInputView.swift 文件中,您应该初始化您的 nib:
private var param1: String!
private var param2: String!
//MARK: - init
static func instantiate(param1: String, param2: String) -> FMTextInputView {
let view: FMTextInputView = initFromNib()
view.param1 = param1
view.param2 = param2
return view
}
4.现在,您可以随时随地轻松使用自定义视图:
let inputView = FMTextInputView.instantiate(param1: "Hello", param2: "world")
self.view.addSubview(inputView)
【讨论】: