如何从一个对象数组中制作IBOutlets?

Mar*_*rty 32 iphone interface-builder iboutlet ios iboutletcollection

我想用Interface Builder中的一堆UIImageViews创建一个数组.而不是20或30

IBOutlet UIImageView *img1;
Run Code Online (Sandbox Code Playgroud)

并以这种方式链接它们,然后将它们放入数组中,有没有办法声明一个IBOutlet UIImageViews数组?

就这样,我的头文件中没有这么多声明.

zou*_*oul 44

它有可能,它被称为插座收集.这是定义插座集合的方法:

@property(retain) IBOutletCollection(UIImageView) NSArray *images;
Run Code Online (Sandbox Code Playgroud)

现在,您可以将多个对象粘贴到Interface Builder中的插座中,将在加载接口时为您创建阵列.

  • 我花了很长时间才弄清楚如何在xcode 4中"将多个对象粘贴到插座中".在代码中创建IBOutletCollection后,我希望能够从UIImageView进行CTRL拖动.出于某种原因,这不起作用.但是可以选择"文件所有者",然后打开"连接检查器",然后依次从"插座集合"部分拖动到每个UIImageView. (7认同)

Kru*_*nal 5

这是更简单的方法。

按照以下步骤创建插座阵列并将其与 IB 元素连接:

  • 创建 IBOutlet 数组
  • 在 Storyboard ViewController 界面中添加多个 UIElements(视图)
  • 选择ViewController(在故事板中)并打开连接检查器
  • 连接检查器中有“插座集合”选项(您将在那里看到一系列插座)
  • 连接 if 与您的界面元素

-

class ViewController2: UIViewController {


    @IBOutlet var collection:[UIView]!


    override func viewDidLoad() {
        super.viewDidLoad()
    }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述