我在下面创建了一个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'类型
答案 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.
}