Error : Instance member cannot be used on type 'ViewController'

Error : Instance member cannot be used on type 'ViewController'

我在下面创建了 UIView 的子类:

import UIKit

class MenuBar : UIView {

    override init(frame : CGRect ){
        super.init(frame: frame)
        setupViews()
       }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
      }
    func setupViews(){

      }
}

然后,我想将它添加到我的 ViewController :

let menuBarView : MenuBar = {

        let mbv = MenuBar(
        mbv.translatesAutoresizingMaskIntoConstraints = false
        mbv.backgroundColor = UIColor.green
        return mbv
    }()

但它 return 一个错误: 实例成员 'MenuBar' 不能用于类型 'ViewController'

不太确定,但你的代码甚至不应该像菜单栏的惰性变量实例化所说的那样编译

let mbv = MenuBar(

应该是

let mbv = MenuBar()

最终工作代码为

let menuBarView : MenuBar = {

        let mbv = MenuBar()
        mbv.translatesAutoresizingMaskIntoConstraints = false
        mbv.backgroundColor = UIColor.green
        return mbv
    }()

测试过,绝对没问题。

编辑:

这就是我的使用方式,它运行良好!

//other variable declaration
    let menuBarView : MenuBar = {
        let mbv = MenuBar()
        mbv.translatesAutoresizingMaskIntoConstraints = false
        mbv.backgroundColor = UIColor.green
        return mbv
    }()

    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.addSubview(menuBarView)

        // Do any additional setup after loading the view, typically from a nib.
    }