以编程方式添加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

以编程方式将 UIImage 添加到集合视图单元中

在 iOS 中以编程方式在标签栏上添加图像

推送 UIViewController 时不能在类型上使用实例成员

以编程方式添加约束