Connect with us

Программирование

Как использовать UIContentUnavailableConfiguration для управления пустыми состояниями

Мне очень нравится это улучшение в UIKit, оно затрагивает аспект, которым долгое время пренебрегали разработчики и дизайнеры — пустое состояние.

Опубликовано

/

     
     

В этом году на WWDC Apple удивила разработчиков неожиданным улучшением UIKit. Представление  UIContentUnavailableConfiguration было направлено на упрощение процесса создания пустых состояний для контроллеров представления.

По словам Apple, UIContentUnavailableConfiguration представляет собой composable описание пустого состояния и может быть снабжено содержимым-заполнителем, например, изображением или текстом.

Вот пример пустого состояния, продемонстрированный на WWDC:

Как использовать UIContentUnavailableConfiguration для управления пустыми состояниями

Теперь давайте разберемся в деталях.

Примечание: Эта статья в основном посвящена UIKit. Если вы хотите узнать, как сделать то же самое в SwiftUI, рекомендую ознакомиться с этой статьей Антуана ван дер Ли.

Создание UIContentUnavailableConfiguration

Существует 4 способа создания UIContentUnavailableConfiguration:

  1. Создание с нуля
  2. Использование предопределенной конфигурации загрузки
  3. Использование предопределенной конфигурации поиска
  4. Использование конфигурации UIHostingConfiguration

1. Создание с нуля

Чтобы начать с нуля, мы должны сначала создать пустую UIContentUnavailableConfiguration.

После этого нам нужно будет настроить содержимое UIContentUnavailableConfiguration в соответствии с нашими потребностями:

Наконец, просто установить конфигурацию в contentUnavailableConfiguration контроллера представления.

Пустое состояние, показанное ниже, теперь должно быть видно в центре контроллера представления.

Как использовать UIContentUnavailableConfiguration для управления пустыми состояниями

Вы можете обратиться к документации по UIContentUnavailableConfiguration, чтобы узнать обо всех других настраиваемых параметрах содержимого.

2. Использование предопределенной конфигурации загрузки

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

Использование приведенного выше кода приведет к следующему пустому состоянию:

Как использовать UIContentUnavailableConfiguration для управления пустыми состояниями

Как и в пустой конфигурации, содержимое заполнителя загрузочной конфигурации также настраивается.

Вот как это выглядит после вышеуказанной настройки:

Как использовать UIContentUnavailableConfiguration для управления пустыми состояниями3. Использование предопределенной конфигурации поиска

Еще одна очень полезная предопределенная конфигурация — это конфигурация поиска. Мы можем использовать ее, когда хотим показать пустое состояние для результата поиска:

Подобно конфигурации загрузки, содержимое-заполнитель конфигурации поиска также можно настраивать.

Как использовать UIContentUnavailableConfiguration для управления пустыми состояниями4. Использование UIHostingConfiguration

И наконец, мой личный фаворит — использование UIHostingConfiguration. Этот подход, по сути, позволяет нам создать любой пустой макет состояния, который мы хотим, используя SwiftUI.

Например:

Приведенный выше код даст нам следующий результат:

Как использовать UIContentUnavailableConfiguration для управления пустыми состояниями

Профессиональный совет: Чтобы узнать больше о UIHostingConfiguration, я рекомендую ознакомиться с этими статьями.

Обновление contentUnavailableConfiguration контроллера представления

Когда дело доходит до обновления contentUnavailableConfiguration, Apple рекомендует разработчикам переопределить новый метод обновления под названием updateContentUnavailableConfiguration(using:).

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

В ситуациях, когда нам нужно вручную вызвать метод обновления, мы можем вызвать следующую функцию:

Пример использования в реальной жизни

На основе того, что мы только что обсудили, я создал пример приложения, чтобы показать, как использовать UIContentUnavailableConfiguration для отображения пустого состояния, когда приложение либо загружается, либо сталкивается с ошибкой.

Для дальнейшего повышения интерактивности примера приложения я также добавил кнопку перезагрузки (которая также является частью UIContentUnavailableConfiguration) в пустое состояние ошибки. Эта кнопка перезагрузки позволяет пользователям легко обновить содержимое приложения в случае ошибки.

Как использовать UIContentUnavailableConfiguration для управления пустыми состояниями

Вот полный код примера, если вам интересно. Обязательно запустите его на Xcode 15 beta 1 или более поздней версии.

Подведение итогов

Мне очень нравится это улучшение в UIKit, оно затрагивает аспект, которым долгое время пренебрегали разработчики и дизайнеры — пустое состояние.

Уменьшая трение, связанное с обработкой пустых состояний, Apple эффективно устраняет одно из распространенных оправданий, по которым разработчики пренебрегали этим аспектом дизайна приложений. Компания поощряет разработчиков брать на себя ответственность за то, чтобы пользовательский интерфейс их приложений не оставался в унылом, необработанном состоянии.

Спасибо за чтение. 👨🏻‍💻

Источник

Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Telegram

Популярное

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: