Я сделал эти (отмеченные красной рамкой) IBOutlets, используя ctrl + drag
Но мне не нравится иметь ту же самую строку 9 раз (DRY)
Как разместить эти IBOutlets в массиве?
Я сделал эти (отмеченные красной рамкой) IBOutlets, используя ctrl + drag
Но мне не нравится иметь ту же самую строку 9 раз (DRY)
Как разместить эти IBOutlets в массиве?
вы можете определить общую коллекцию розетки в Swift следующим образом:
@IBOutlet var collectionOfViews: Array<UIView>?
или, например, UIButton
объектов:
@IBOutlet var collectionOfButtons: Array<UIButton>?
вы можете найти свои коллекции в группе Outlet Collections, как обычно, в File Owner:
он будет выглядеть на моей консоли после подключения 5 случайных кнопок:
Выполните следующие шаги, чтобы создать массив выходов и подключить его к IB Elements:
-
class ViewController2: UIViewController {
@IBOutlet var collection:[UIView]!
override func viewDidLoad() {
super.viewDidLoad()
}
}
Решение здесь Swift - эквивалент IBOutletCollection
@IBOutlet var objectCollection: [Object]
Начните с двух областей просмотра, где вы увидите как свой код, так и раскадровку. Когда вы создаете свое первое соединение IBOutlet из пользовательского интерфейса с вашим кодом, просто внимательно посмотрите на поле "Отключить соединение" и выберите параметр "Коллекция Outlet". Это автоматически создаст массив IBOutlets. Затем просто найдите маленький черный круг в круге, который помещается в ваш код, где создается массив. Просто перетащите из этого круга во все другие объекты пользовательского интерфейса, которые вы хотите подключить к той же коллекции (не уверены, можете ли вы смешивать типы). Аналогичным образом вы можете связать все объекты с одним действием, перетащив его из первой черной точки, созданной для всех других объектов, которые вы хотите подключить к этому действию. Также рассмотрите функцию EnumerateSequence(), чтобы помочь в работе с этой коллекцией. Сладкий правый?