【问题标题】:Swift Arrays with Controls/Instances带有控件/实例的 Swift 数组
【发布时间】:2015-08-13 02:25:47
【问题描述】:

是否可以有 UIImageViews 数组?如果有,怎么做?

我写这篇文章认为它会起作用,但我得到了错误(所以它肯定是错误的):

let Array_of_UIImageViews = [@IBOutlet weak var T1: UIImageView!,@IBOutlet weak var T2: UIImageView!,@IBOutlet weak var T3: UIImageView!]

【问题讨论】:

  • 您还可以为集合创建IBOutlet@IBOutlet var myImageViews: [UIImageView]! 并将每个 UIImageView 链接到集合。如果您需要引用特定视图,您还可以为每个人 UIImageView 保留一个 IBOutlet

标签: arrays swift object controls instances


【解决方案1】:

如果您想让 Interface Builder 自动将 IBOutlets 链接到一个集合,请像这样声明该集合:

@IBOutlet var imageViews: [UIImageView]!

然后,您可以将所有感兴趣的出口从情节提要中逐一控制拖动到这行代码。

或者,您可以控制并拖动一个插座,然后在弹出窗口中选择 Outlet Collection 作为连接类型。它将生成与上述完全相同的代码。然后,您可以控制并拖动其他感兴趣的插座到生成的代码行。

【讨论】:

  • 感谢您的回答,我成功地将代码放入并控制拖动了我的uiimageviews,但现在我在IOS Sim中尝试测试时遇到错误。?它说的是这样的:线程 1:信号 SIGABRT你知道发生这种情况的任何原因吗?
  • SIGABRT 表示在您的代码之外发生了一些错误。我猜你在尝试我的答案之前已经为这些 UIImageViews 做了一些单独的出口。因此,您可能已经从代码(源文件)中删除了这些出口,但仍将它们留在情节提要文件中。尝试清除情节提要中的这些插座(在实用程序窗格最右侧的连接检查器中)。
【解决方案2】:

你只需创建一个 UIImageViews 数组:

@IBOutlet weak var T1: UIImageView!
@IBOutlet weak var T2: UIImageView!
@IBOutlet weak var T3: UIImageView!

let array = [UIImageView]()
array.append(T1)
array.append(T2)
array.append(T3)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2014-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多