Iphone swift uiview没有名为center的成员,并且无法转换为uiview
我制作了一个de模型类“fish”的数组,并希望在视图加载时显示在视图上。我收到了错误消息: “Fish”没有名为“center”的成员 “Fish”不能转换为“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 {
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
,而不必总是引用imageViewfish.imageView.center
,并且您将整个fish作为对象添加到视图中,而不仅仅是它的imageView
var fish3 = Fish(frame: CGRectMake(0, 0, 50, 50))
fish3.image = UIImage(named: "fish_3")
fishes.append(fish3)