我是斯威夫特的新手,我仍然试图了解很多事情。我为陨石做了一堂课:
class Meteorite {
var width: Int,
height: Int,
x: Int,
y : Int
init(width: Int, height: Int, x: Int, y: Int) {
self.width = width
self.height = height
self.x = x
self.y = y
let image = UIImage(named: "square")
let imageView = UIImageView(image: image!)
imageView.frame = CGRect(x: self.x, y: self.y, width: self.width, height: self.height)
view.addSubview(imageView)
}
}
...而我正试图让流星通过UIImage View元素出现。但是,就行:view.addSubview(imageView)
我不断抛出错误:
实例成员'view'不能用于'ViewController'类型
我可能做错了,但是这个类是在ViewController类中定义的,它是UIViewController的子类。我在网上找不到任何对我的情况有意义的东西。非常感谢帮助:)
答案 0 :(得分:0)
Meteorite
可以嵌套在UIViewController
子类中,但您仍然在view
类的上下文中引用Meteorite
属性。实际上,您正在向不存在的变量发送消息。
这里要做的是在元素的init之外移动视图层次结构的任何操作。这应该由视图控制器处理,而不是子视图。
我建议在其初始化中配置Meteorite
对象,但将其添加到视图控制器的视图中,比如视图控制器的viewDidLoad:
方法。