以编程方式添加UIImage时,不能在类型上使用实例成员
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了以编程方式添加UIImage时,不能在类型上使用实例成员相关的知识,希望对你有一定的参考价值。
我是Swift的新手,而且我仍然试图了解很多事情。我为陨石做了一堂课:
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的子类。我在网上找不到任何对我的情况有意义的东西。非常感谢帮助:)
答案
Meteorite
可能嵌套在UIViewController
子类中,但您仍然在view
类的上下文中引用Meteorite
属性。实质上,您正在向不存在的变量发送消息。
这里要做的是在元素的init之外移动视图层次结构的任何操作。这应该由视图控制器处理,而不是子视图。
我建议在它的init中配置Meteorite
对象,但是将它添加到视图控制器的视图中,比如视图控制器的viewDidLoad:
方法。
以上是关于以编程方式添加UIImage时,不能在类型上使用实例成员的主要内容,如果未能解决你的问题,请参考以下文章
在 UIImage 上添加 TextViews - Swift - 以编程方式
以编程方式将 UIButtons 添加到 UICollectionView 单元格的 uiimage