斯威夫特-在课堂上给自己分配一个NIB[英] Swift - Assign a NIB to self in class

本文是小编为大家收集整理的关于斯威夫特-在课堂上给自己分配一个NIB的处理方法,想解了斯威夫特-在课堂上给自己分配一个NIB的问题怎么解决?斯威夫特-在课堂上给自己分配一个NIB问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我正在为通知下拉横幅创建一个 UIView 子类.我正在使用 XIB 构建视图,并希望在初始化时将该 xib 分配给类(即避免必须从调用 ViewController 执行此操作).

由于您不能在 swift 中分配给"self",我如何在类本身中正确地执行此操作?

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
    }
}

本文地址:https://www.itbaoku.cn/post/924439.html