错误:不能在“ViewController”类型上使用实例成员

时间:2016-12-16 08:58:37

标签: ios swift uiviewcontroller swift3 instance

我在下面创建了一个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
    }()

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

1 个答案:

答案 0 :(得分:1)

不太确定,但是你的代码甚至不应该编译为menubar的懒惰变量实例化

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