Хотя вы не просили об этом, я чувствую себя обязанным объяснить, почему люди в целом (возможно, не вы) должны рассмотреть IB, а затем заняться вопросом о пользовательских компонентах.
Я используюмного анимации и пользовательских компонентов.И я люблю использовать IB ...
Ключ в том, чтобы использовать IB для его сильных сторон, а затем решить, что делать с остальными оттуда.Каковы же самые сильные стороны IB?Соединения, размещение, автоматическое изменение размера и настройки.
Соединения связывают аспекты видов и контроллеров.В IB быстрее растягивать несколько соединений с делегатами или ссылками, чем писать код, который формирует соединения.И это быстрое место для просмотра всех ссылок на пользовательский интерфейс, который вы создаете.
Место размещения IB также хорошо работает.Для правильной настройки любого GGRect требуется немало кода.Мало того, что проще вводить и просматривать сведения о координатах и размерах в IB, но и инструмент автоматически подбирает правильные размеры множества элементов для контейнера и элемента управления и предлагает множество направляющих, которые помогут правильно выстроить элементы - такие вещи могут потребоватьсямного повторных испытаний, чтобы получить право.
Связано это с автоматическим изменением размера.Хотя я не чувствую, что многие экраны могут иметь правила автоматического пересмотра, которые поворачивают экран и выходят с другой стороны, выглядя просто правильно (я почти всегда делаю повернутые представления в виде отдельного файла XIB), все же есть много измененийэто может произойти в ходе работы вашего приложения, что делает его действительно полезным для правильного определения.Лучший пример этого - увеличенная строка состояния во время разговора.
Наконец приходит настройка.Это снова может быть много утомительного кода для написания;Попробуйте настроить все свойства на UILabel вручную, и у вас будет стремление к быстрым изменениям в IB.
Учитывая все вышесказанное, каков хороший подход к пользовательским компонентам?Мне нравится использовать UIViews на экранах IB, с типом класса, установленным на пользовательский UIView, который затем заполняет отображение во время выполнения.Но, по крайней мере, IB помогает мне точно подобрать композицию, размещение и автоматическое изменение размера с минимальной суетой, а также связать аспекты этого пользовательского представления с контроллером.
Единственное, что действительно пригодится для использования IB с пользовательскимКомпоненты - это если бы он просто позволял мне устанавливать значения для любых простых свойств, которые имел пользовательский вид, - тогда я мог бы настраивать параметры, такие как радиус угла или все, что у меня было.
Я призываю вас немного подумать о IB, поскольку при правильном использовании это огромный прирост производительности.В IB не должно быть ничего, что могло бы помешать, оно должно повысить вашу производительность.