目标
我需要我的应用来显示UIImageView
的多个实例。换句话说,应用应该使用UIImageView
并在视图中显示更多次。新的UIImageViews
保持相同,只有它们在视图中的位置会发生变化。
代码
为此,我首先声明UIImageView
:
let myImage = UIImage(named: "house")
let myImageView = UIImageView(image: myImage)
myImageView.frame = CGRectMake(view.frame.size.width/2, view.frame.size.height/2, 100, 100)
然后我使用for-loop
重复图像重复。
for (var i = 0; i != 10; i++) {
// Distribuite UIIMageViews here
self.view.addSubview(myImageView)
}
尽管如此,我似乎无法复制UIImageView
并显示更多次。声明多个UIImageView
听起来对我来说是一个低效的解决方案。
问题
有没有办法通过声明一次对象(UIImageView
)多次显示它?
答案 0 :(得分:1)
由于UIImageView
不符合NSCopying协议,您必须自行复制:实例化新的UIImageView
并手动复制您认为重要的每个属性原来的新的。
以下示例基于原始图像创建10个新图像。他们只是复制UIImage
,但你可以完成它并复制你需要的属性:
let myImage = UIImage(named: "house")
let myImageView = UIImageView(image: myImage)
myImageView.frame = CGRectMake(view.frame.size.width/2, view.frame.size.height/2, 100, 100)
self.view.addSubview(myImageView)
for (var i = 0; i != 10; i++) {
var newImageView = UIImageView(image: myImageView.image)
newImageView.frame = // yourNewFrame
// Copy any else properties you need from the original image
self.view.addSubview(newImageView)
}