我正在为通知下拉横幅创建 UIView 子类。
我正在使用 XIB 来构建 View ,并希望在它初始化时将该 xib 分配给该类(即避免必须从调用 ViewController 执行此操作)。
由于您无法在 swift 中分配给“自我”,我该如何从类(class)内部正确地做到这一点?
class MyDropDown: UIView
{
func showNotification()
{
self = UINib(nibName: nibNamed, bundle: bundle).instantiateWithOwner(nil, options: nil)[0] as? UIView
}
}
最佳答案
对于任何想在 swift 中从它自己的类初始化 xib 的人来说,这是使用自定义类初始化程序的最佳方法:
class MyCustomView: UIView
{
@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var titleLabel: UILabel!
class func initWithTitle(title: String, image: UIImage? = nil) -> MyCustomView
{
var myCustomView = UINib(nibName: "MyCustomView", bundle: nil).instantiateWithOwner(nil, options: nil)[0] as? MyCustomView
myCustomView.titleLabel.text = title
if image != nil
{
myCustomView.imageView.image = image
}
//...do other customization here...
return myCustomView
}
}