Вопрос

У меня есть верхний список в моем текущем приложении для iPhone, который заполнен кодом.Я собрал представление с помощью Interface Builder, поэтому оно содержит множество UILabels.

Очевидно, что я не хотел бы иметь name1, name2, и т.д.розетки в моем классе, но предпочитаю name[10] массив.

Возможно ли это сделать и подключить каждый элемент к соответствующей метке (или любому другому конструктору интерфейса, такому как view)?

Это было полезно?

Решение

вы не можете сделать это в IB, но вы можете создать массив в вашем init метод и добавьте к нему все ваши ярлыки.

Кстати, вы можете установить некоторый тег для каждой метки и определить макрос для доступа к ней.что-то вроде

#define NAME[TAG] (UILabel*)[self.view viewWithTag:TAG]

Другие советы

Конечно, вы можете сделать это с помощью interface builder, ключевое слово IBOutletCollection.То, что он делает, - это, по сути, NSArray из нескольких выходов interface builder.

IBOutletCollection(UILabel) NSArray *myLabels;

Итак, следующим шагом будет подключение ваших меток в interface builder, а затем вы сможете использовать массив для доступа ко всем меткам во время выполнения.

Это можно сделать с помощью коллекций аутлетов, см. этот связанный с этим вопрос.

Выполните следующие действия, чтобы создать массив розеток и соединить его с элементами IB (вот пример UIView, вы можете использовать UILabel также):

  • Создайте массив IBOutlets
  • Добавьте несколько UIElements (представлений) в ваш интерфейс Storyboard ViewController
  • Выберите ViewController (в раскадровке) и откройте инспектор подключений
  • В инспекторе подключений есть опция "Коллекции розеток" (там вы увидите множество розеток).
  • Соедините if с элементами вашего интерфейса

-

class ViewController2: UIViewController {


    @IBOutlet var collection:[UIView]!


    override func viewDidLoad() {
        super.viewDidLoad()
    }
}

enter image description here

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top