Iphone swift uiview没有名为center的成员,并且无法转换为uiview

Iphone swift uiview没有名为center的成员,并且无法转换为uiview,iphone,swift,uiview,uiimageview,uiimage,Iphone,Swift,Uiview,Uiimageview,Uiimage,我制作了一个de模型类“fish”的数组,并希望在视图加载时显示在视图上。我收到了错误消息: “Fish”没有名为“center”的成员 “Fish”不能转换为“UIView” 请看下面我的代码。我将感激任何帮助。谢谢 这里是我的自定义类: class Fish { var imageView = UIImageView(image: UIImage(named: "fish_3")) } 这里是我的视图控制器: class ViewController: UIViewController {

我制作了一个de模型类“fish”的数组,并希望在视图加载时显示在视图上。我收到了错误消息:

“Fish”没有名为“center”的成员 “Fish”不能转换为“UIView”

请看下面我的代码。我将感激任何帮助。谢谢

这里是我的自定义类:

class Fish {
var imageView = UIImageView(image: UIImage(named: "fish_3"))
}
这里是我的视图控制器:

class ViewController: UIViewController {

var fishes:[Fish] 

required init(coder aDecoder: NSCoder) {
    fishes = [Fish]() 

    var fish3 = Fish()
    fish3.imageView = UIImageView(image: UIImage(named: "fish_3"))
    fishes.append(fish3)

    super.init(coder: aDecoder)
}

override func viewDidLoad() {
    super.viewDidLoad()

    for fish in fishes {
    var x = CGFloat(arc4random_uniform(120))
    var y = CGFloat(arc4random_uniform(200))
    fish.center.x = CGPoint(x: x, y: y)
    view.addSubview(fish)
    }   
}

Fish应该以某种方式从UIView继承,最好的方法是将其作为UIImageView的子类

class Fish: UIImageView {
    override init(frame: CGRect) {
        super.init(frame: frame)
        // Setup
    }

    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        // Setup
    }
}
现在,当您初始化它时:

var fish3 = Fish(frame: CGRectMake(0, 0, 50, 50))
fish3.image = UIImage(named: "fish_3")
fishes.append(fish3)

你为什么认为鱼是一种风景?为什么不创建一个图像视图数组呢?输入:fish.center.x=CGPoint(x:x,y:y)-->fish.center=CGPoint(x:x,y:y)。我仍然有相同的错误。请更正问题而不是添加注释。Fish是UIImageView。但是为什么斯威夫特告诉我鱼不是一种风景呢。我需要将fish添加到我的视图中,因为fish并不是一个图像视图,而不是现在代码的样子。您必须使其成为UIImageView的子类,才能成为UIImageView。使用此答案,您实际上可以只设置
fish.center
,而不必总是引用imageView
fish.imageView.center
,并且您将整个fish作为对象添加到视图中,而不仅仅是它的imageView
var fish3 = Fish(frame: CGRectMake(0, 0, 50, 50))
fish3.image = UIImage(named: "fish_3")
fishes.append(fish3)