Преимущества и недостатки построения ваших представлений с использованием XIB
В этой части я покажу вам, как создавать ваши представления с помощью файла XIB и как соединить файл XIB с базовой логикой. Я также расскажу о преимуществах и недостатках этого подхода. Пойдем!
Создать XIB
Нам нужно создать XIB в папке, в которой мы хотим сохранить представление.
Итак, щелкните правой кнопкой мыши папку, добавьте новый файл и выберите представление пользовательского интерфейса.
Затем дайте общее имя для файла XIB и будущего файла Swift. Здесь вы можете добавить несколько подпредставлений в XIB.
Важно добавить все ограничения для ширины и высоты. Имейте в виду, что вам нужно всегда иметь верхнее и нижнее ограничение со статической высотой или добавлять статическую высоту с помощью кода. Это может помочь с использованием StackViews. Кроме того, вы можете использовать ограничения ›= для атрибутов top, bottom, начальные и конечные.
Как только вы закончите XIB, продолжайте работу с классом Swift.
Создайте класс Swift
В той же папке добавьте новый файл Swift и назовите его так же, как XIB.
Очевидно, вам нужно написать класс с тем же именем, и этот класс должен быть унаследован от UIView.
Переопределите функцию awakeFromNib
и добавьте следующий код:
- Загрузите представление из файла XIB
- Назначьте родительские границы дочернему фрейму
- Сделайте подвид автоматически регулируемым по высоте и ширине
- Добавить подпредставление к родительскому
Свяжите XIB с файлом Swift
Перейдите к файлу XIB, в левом столбце вы найдете раздел под названием: Владелец файла. Нажмите на нее и в правом столбце задайте имя класса Swift.
Кроме того, вы можете привязать код в XML-файле, открыв XIB как исходный код и найдя эту строку:
<placeholder placeholderIdentifier=”IBFilesOwner” id=”-1" userLabel=”File’s Owner” customClass=”YourSwiftClassName” customModule=”ProjectName” customModuleProvider=”target”/>
Теперь вы можете привязать представления XIB как IBOutlets и IBAction в классе Swift как обычный XIB.
Преимущества
- Сохранение кода в чистоте
- Лучшее управление автоматическим макетом с дружественным интерфейсом
- Лучшее обслуживание кода
- Легче добавлять новые функции
Недостатки
- Не может наследовать представления
- Может вызывать сложные конфликты git в файле представления XML.
Выводы
Правильный способ включить такие функции в XCode - это создать класс со всей логикой и создать шаблон XCode, унаследованный от вашего класса. В моем случае у меня есть такой класс:
Важно !!
Ваш класс является родительским представлением. Он работает как контейнер для представления XIB, поэтому, если вы хотите, например, сделать цвет фона прозрачным, вы должны изменить его в обоих. Простым решением может быть переопределение в вашем классе всех свойств, которые вам нужно изменить, как всегда, например backgroundColor, layer и т. Д.