これらを作成しました(赤い枠でマーク)ctrl + drag
しかし、私はまったく同じ行を9回(DRY)持つのは好きではありません
これらのIBOutletsを配列に入れるにはどうすればよいですか?
次のようにSwiftで汎用アウトレットコレクションを定義できます。
@IBOutlet var collectionOfViews: Array<UIView>? // = [UIView]?
またはUIButton
オブジェクト:
@IBOutlet var collectionOfButtons: Array<UIButton>? // = [UIButton]?
通常はファイルの所有者にあるように、Outlet Collectionsグループでコレクションを見つけることができます。
5つのランダムなボタンを接続すると、コンソールに表示されます。
以下の手順に従って、アウトレットの配列を作成し、IB Elementsに接続します。
-
class ViewController2: UIViewController {
@IBOutlet var collection:[UIView]!
override func viewDidLoad() {
super.viewDidLoad()
}
}
ここでの解決策 Swift-IBOutletCollectionと同等
@IBOutlet var objectCollection:[オブジェクト]
コードとストーリーボードの両方が表示される2つのビューペインから始めます。 UIからコードへの最初のIBOutlet接続を作成するときは、[接続]ドロップダウンフィールドを注意深く見て、[アウトレットコレクション]というオプションを選択してください。これにより、IBOutletsの配列が自動的に作成されます。次に、配列が作成されるコード内に配置された円内の小さな黒い円を探します。この円から、同じコレクションに接続する他のすべてのUIオブジェクトにドラッグするだけです(タイプを混合できるかどうかはわかりません)。同様に、作成された最初の黒い点からそのアクションに結び付けたい他のすべてのオブジェクトにドラッグすることにより、すべてのオブジェクトを1つのアクションに接続できます。また、EnumerateSequence()を検討して、このコレクションの操作を支援してください。甘いでしょ?