Оповещения с несколькими кнопками, полями редактирования, таблицами действий, представлениями активности, всплывающими окнами на iPad и эволюцией SwiftUI

Введение в оповещения

В iOS есть несколько способов отображения некоторых модальных сообщений. Для передачи информации пользователю и, при необходимости, для получения обратной связи. Чаще всего используются оповещения и листы действий. Подобными второстепенными вариантами являются представления активности и всплывающие окна.

Оповещения

Оповещения являются наиболее часто используемыми и самыми простыми. UIAlertController — самая важная его часть.

Оповещения содержат несколько элементов:

  • Заголовок: представляет заголовок. О том, что такое содержание
  • Сообщение. Представляет более широкую часть описания предупреждения.
  • Стиль оповещения: указывает тип отображаемого оповещения.
  • Действия с предупреждениями. Это параметры действий, с помощью которых пользователи могут взаимодействовать с предупреждением или листом действий.
  • Текстовое поле оповещения: указывает на то, что пользователь может внести некоторые данные.

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

Простое оповещение с заголовком, подзаголовком и одной кнопкой

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

Если параметр message получает значение nil, то будет представлена ​​только одна строка, заголовок.

Оповещение с 2 кнопками

Вы можете заметить, что кнопка «Отмена» выделена жирным шрифтом. Это достигается путем выбора style в качестве cancel. Кроме того, если вы поддерживаете предыдущие версии iOS, это может иметь небольшие отличия.

Оповещение с 3 кнопками

В предыдущем оповещении кнопки были выровнены по вертикали. Если вы добавите 3 кнопки, система автоматически выровняет их по вертикали в пространстве.

С этим Alert мы также использовали стиль destructor, который окрашивает текст в красный цвет. Он в основном используется для некоторых операций, таких как Удалить, Удалить. Все, что может указать пользователю на то, что эта операция может привести к постоянным изменениям.

Оповещение с текстовым полем

Это самое интересное оповещение. Это можно использовать, когда вы хотите добавить какой-либо элемент в список. Если вы хотите отредактировать некоторые поля пользователя, такие как имя, номер мобильного телефона. Любое поле редактирования.

Оповещение без кнопки

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

Листы действий

Листы действий относятся к семейству UIAlertController. Но он представлен снизу экрана.

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

Если вы запустите этот код на iPad, произойдет сбой. iPad должен знать положение UIAlertController, поскольку оно представлено внутри всплывающего контроллера. Чтобы исправить этот сбой, нам нужно добавить следующую строку перед представлением листа действий.

alert.popoverPresentationController?.sourceView = view
alert.popoverPresentationController?.sourceRect = button.frame

Теперь лист действий будет представлен на кнопке из исходного кода.

Просмотры активности

Система предоставляет несколько стандартных услуг, таких как копирование элементов на монтажный стол, размещение контента на сайтах социальных сетей, отправка элементов по электронной почте или SMS и многое другое. Приложения также могут определять пользовательские службы. В основном он используется для обмена контентом. Может обрабатывать обмен текстом, URL-адресами, изображениями и т. д. Это не обычный способ предоставления пользователю некоторых опций, но он по-прежнему относится к «модальному» способу представления для общения с пользователем.

Поповеры

Всплывающие окна — это специальные способы модального представления контента на iPad.

Примеры кода можно найти по следующей ссылке GitHub.

Оповещения SwiftUI

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

Как видите, он эволюционировал вместе со SwiftUI. Единственное, что я хотел бы подчеркнуть сейчас, это то, что теперь оповещения более настраиваемые, чем оповещения UIKit.

Outro

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

Если вы дошли до этого места, спасибо за чтение. Вы заслуживаете кофе ☕️. 🙂 Если вам нравится контент, пожалуйста 👏, поделитесь и подпишитесь, это значит для меня. Если у вас есть предложения или вопросы, пожалуйста, не стесняйтесь комментировать.

Хотите связаться?
Вы можете связаться со мной в LinkedIn, Twitter или на https://skyspiritlabs.com/. Есть больше статей и руководств.