gpt4 book ai didi

Swift - IBOutletCollection 等价物

转载 作者:IT王子 更新时间:2023-10-29 04:59:49 29 4
gpt4 key购买 nike

我正在尝试在 Swift 的 iTunesU 中从“为 iphone 和 ipad 开发 ios7 应用程序”中复制 Stanford Matchismo 游戏。

第三讲77页slides ,它显示使用 IBOutletCollection,这在 Swift 上不是一个选项。 Swift 文档示例显示了一个包含 IBOutlet 数组的示例,但我不知道如何让 Interface Builder 将多个 socket 连接到同一个 IBOutlet/IBOutlet 数组。

有没有人想出如何做到这一点?

我知道我可以创建 12 个导出并以这种方式处理它,但我想让这项工作尽可能接近讲座幻灯片中的示例。

最佳答案

更新:这现在在 Xcode 中正常工作 - “Outlet Collection”是 Interface Builder 中的连接选项之一,它创建的东西看起来像:

@IBOutlet var labelCollection: [UILabel]!

在我们等待修复的同时,您可以使用计算属性对此进行近似。假设我的 View 有五个 UILabels,我想将它们放在一个集合中。我仍然必须声明每一个,但随后我还声明了一个收集它们的计算属性:

class MyViewController {
@IBOutlet var label1 : UILabel
@IBOutlet var label2 : UILabel
@IBOutlet var label3 : UILabel
@IBOutlet var label4 : UILabel
@IBOutlet var label5 : UILabel
var labels: UILabel![] { return [label1, label2, label3, label4, label5] }

有点烦人,但从那时起我们可以将 labels 属性视为 IBOutletCollection,而不必更改其余代码错误修复后:

override func viewDidLoad() {
super.viewDidLoad()

for (index, item) in enumerate(self.labels) {
item.text = "Label #\(index)"
}
}

关于Swift - IBOutletCollection 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24052459/

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