gpt4 book ai didi

ios - 如何显示一个对象的多个副本?

转载 作者:行者123 更新时间:2023-11-29 02:05:12 26 4
gpt4 key购买 nike

目标

我需要我的应用程序显示 UIImageView 的多个实例。换句话说,应用程序应该采用 UIImageView 并在 View 中多次显示它。新的 UIImageViews 保持不变,只是它们在 View 中的位置发生了变化。

代码

为此,我首先声明一个 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 循环 来重复图像。

    for (var i = 0; i != 10; i++) {
// Distribuite UIIMageViews here

self.view.addSubview(myImageView)
}

不过,我似乎找不到复制 UIImageView 并显示更多次的方法。对我来说,声明多个 UIImageView 听起来像是一种低效的解决方案。

问题

有没有办法通过仅声明一次对象(UIImageView)来多次显示它?

最佳答案

因为 UIImageView 不符合 NSCopying协议(protocol),您将必须自己进行复制:实例化一个新的 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)
}

关于ios - 如何显示一个对象的多个副本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29857459/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com