gpt4 book ai didi

ios - 清理代码? (Xcode 在索引时卡住)

转载 作者:行者123 更新时间:2023-11-30 13:20:03 28 4
gpt4 key购买 nike

我相信我必须稍微清理一下我的代码,因为 Xcode 第一次开始在“索引”时卡住,并且我无法运行我的项目。我认为这很容易做到,但我不知道什么方法是最好的。有 36 个 UIImageViews...

@IBOutlet var Image1: UIImageView!
@IBOutlet var Image2: UIImageView!
@IBOutlet var Image3: UIImageView!
@IBOutlet var Image4: UIImageView!
@IBOutlet var Image5: UIImageView!
@IBOutlet var Image6: UIImageView!
@IBOutlet var Image7: UIImageView!
@IBOutlet var Image8: UIImageView!
@IBOutlet var Image9: UIImageView!
@IBOutlet var Image10: UIImageView!
@IBOutlet var Image11: UIImageView!
@IBOutlet var Image12: UIImageView!
@IBOutlet var Image13: UIImageView!
@IBOutlet var Image14: UIImageView!
@IBOutlet var Image15: UIImageView!
@IBOutlet var Image16: UIImageView!
@IBOutlet var Image17: UIImageView!
@IBOutlet var Image18: UIImageView!
@IBOutlet var Image19: UIImageView!
@IBOutlet var Image20: UIImageView!
@IBOutlet var Image21: UIImageView!
@IBOutlet var Image22: UIImageView!
@IBOutlet var Image23: UIImageView!
@IBOutlet var Image24: UIImageView!
@IBOutlet var Image25: UIImageView!
@IBOutlet var Image26: UIImageView!
@IBOutlet var Image27: UIImageView!
@IBOutlet var Image28: UIImageView!
@IBOutlet var Image29: UIImageView!
@IBOutlet var Image30: UIImageView!
@IBOutlet var Image31: UIImageView!
@IBOutlet var Image32: UIImageView!
@IBOutlet var Image33: UIImageView!
@IBOutlet var Image34: UIImageView!
@IBOutlet var Image35: UIImageView!
@IBOutlet var Image36: UIImageView!


override func viewDidLoad() {

let images = (1...6).map { UIImage(named: "Owl\($0)") }
let imageViewsArray = [Image1, Image2, Image3, Image4, Image5, Image6, Image7, Image8, Image9, Image10, Image11, Image12, Image13, Image14, Image15, Image16, Image17, Image18, Image19, Image20, Image21, Image22, Image23, Image24, Image25, Image26, Image27, Image28, Image29, Image30, Image31, Image32, Image33, Image34, Image35, Image36]
for view in imageViewsArray {
let randomIndex = Int(arc4random_uniform(UInt32(images.count)))
view.image = images[randomIndex]
}

}

我可以为所有 36 个图像制作一个 IBOutlet 吗?或者类似的东西? :-)

有关ViewDidLoad()中代码的信息here .

最佳答案

正如@FruitAddict所说,UICollectionView可能很有用,当然这取决于您想要显示的内容。但如果它不符合您的需求,您仍然可以使用 Outlet 连接而不是 socket :

enter image description here

因此,您可以直接从 labelCollection 访问每个标签,labelCollection 是 UILabel 的显式解包数组。

此外,在 gif 中,通过将第二个标签拖动到已存在的导出,将其添加到集合导出。导出不会被替换(就像在常规对象中一样),而是将新标签添加到数组中。

编辑:

正如 @nhgrif 指出的那样,不要依赖于 Outlet 集合中对象的顺序:

It's important to note that while many times the order within the outlet collection may coincidentally coincide with the order you dragged them in, Apple makes no guarantees about this and the order within the collection should not be relied upon.

您应该将此数组视为一个集合。

关于ios - 清理代码? (Xcode 在索引时卡住),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37858267/

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