首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:不能在“ViewController”类型上使用实例成员

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

Stack Overflow用户
提问于 2016-12-16 08:58:37
回答 1查看 3.5K关注 0票数 0

我在下面创建了一个UIView子类:

代码语言:javascript
复制
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中:

代码语言:javascript
复制
let menuBarView : MenuBar = {

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

但是它返回一个错误:实例成员'MenuBar‘不能在'ViewController’类型上使用

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-16 09:13:11

不太确定,但是您的代码甚至不应该编译,就像menubar的惰性变量实例化所说的那样。

代码语言:javascript
复制
let mbv = MenuBar(

它应该是

代码语言:javascript
复制
let mbv = MenuBar()

最后的工作代码是

代码语言:javascript
复制
let menuBarView : MenuBar = {

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

测试过了,它运行得非常好。

编辑:

这是我如何使用它,它是运行良好的!

代码语言:javascript
复制
//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.
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41180558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档