interface-builder – Swift – IBOutletCollection等效

概述我试图复制斯坦福Matchismo游戏从“开发ios7应用程序的iphone和ipad”在iTunesU的Swift。 在第3讲slides的第77页,它显示使用IBOutletCollection,这不是Swift的一个选项。 Swift doc示例显示了一个包含IBOutlet数组的示例,但我无法弄清楚如何使Interface Builder将多个插座连接到同一个IBOutlet / IBOu 我试图复制斯坦福Matchismo游戏从“开发ios7应用程序的iphone和ipad”在iTunesU的Swift。

在第3讲slides的第77页,它显示使用IBOutletCollection,这不是Swift的一个选项。 Swift doc示例显示了一个包含IBOutlet数组的示例,但我无法弄清楚如何使Interface Builder将多个插座连接到同一个IBOutlet / IBOutlet数组。

有谁知道如何做到这一点?我知道我可以创建12个插座,并以这种方式处理,但我想让这个工作尽可能接近演示幻灯片中的例子。

编辑

This was fixed in a later Beta release of Swift – there’s Now in
IBCollection option in the interface builder.

对于早期的Beta版本的Swift:

我遇到同样的问题:在Beta 2的发行说明中,您会发现以下语句:

Interface Builder does not support declaring outlet collections in Swift classes

我解决了这个方法(容易定制):

class CardGameVIEwController: UIVIEwController {  @lazy var cardbuttons : UIbutton[] = {    var tempBtn: UIbutton[] = []    for v:AnyObject in self.vIEw.subvIEws {      if v is UIbutton {        tempBtn.append(v as UIbutton)      }    }    return tempBtn  }()...

基本上,它循环遍历所有的子视图,并检查如果一个是UIbutton。在这种情况下,它被添加到一个临时数组。这个临时数组然后用于延迟实例化cardbuttons数组。有关所有详细信息,请检查:Matchismo: Objective-C to Swift

总结

以上是内存溢出为你收集整理的interface-builder – Swift – IBOutletCollection等效全部内容,希望文章能够帮你解决interface-builder – Swift – IBOutletCollection等效所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1059363.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存