Предупредительные представления
Предупредительные представления выводят на экран краткое и информативное предупредительное сообщение пользователю. Предупредительные представления передают важную информацию о приложении или устройстве, прерывая пользователя и требуя, чтобы они остановили то, что они делают, чтобы выбрать действие или отклонить предупреждение. Например, iOS использует предупреждения, чтобы предупредить пользователя, что заряд батареи кончается, таким образом, они могут подключить адаптер питания, прежде чем будет прервана их работа. Предупредительное представление появляется поверх содержимого приложения и должно быть вручную отклонено пользователем, прежде чем он сможет возобновить взаимодействие с приложением.
Цель. Предупредительные представления позволяют пользователям:
Будьте сразу информированы о критической информации
Примите решение о плане действий
Реализация. Предупредительные представления реализованы в UIAlertView
класс и обсудил в Ссылке класса UIAlertView.
Конфигурация. Предупредительные представления создаются, инициализируются и конфигурируются в коде, обычно находясь в файле реализации контроллера представления.
Содержание предупредительных (программируемых) представлений
Вы не можете создать или управлять предупредительными представлениями в Интерфейсном Разработчике. Скорее предупредительное представление плавает по существующему представлению для прерывания его представления, и оно требует, чтобы пользователь отклонил его. Если предупредительное представление содержит пользовательскую кнопку, позволяющую пользователям выбрать альтернативное действие, вместо того, чтобы просто отклонить предупреждение, то действие обрабатывается делегатом предупредительного представления.
Когда установка предупреждения просматривает содержание, можно управлять числом кнопок, их заголовков, отображаемого текста и включения одного или двух текстовых полей, одно из которых может быть безопасным полем ввода текста.
Когда Вы создаете предупредительный объект представления из UIAlertView
класс, можно инициализировать его самые важные свойства с одним методом, initWithTitle:message:delegate:cancelButtonTitle:otherButtonTitles:
. В зависимости от потребностей Вашего приложения, что единственного сообщения может быть достаточно для конфигурирования полностью функционального предупредительного объекта, как показано в следующем коде. После создания предупредительного объекта отправьте ему a show
обменивайтесь сообщениями для отображения предупреждения.
UIAlertView *theAlert = [[UIAlertView alloc] initWithTitle:@"Title"
message:@"This is the message."
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[theAlert show];
Каждое предупреждение имеет Кнопку отмены так, чтобы пользователь мог отклонить предупреждение. Можно добавить дополнительные, пользовательские кнопки, чтобы позволить пользователю выполнить некоторое другое действие, связанное с предупреждением, таким как исправление проблемы, о которой предупредило предупреждение. Несмотря на то, что можно добавить многократные пользовательские кнопки к предупреждению, Инструкции по Интерфейсу пользователя iOS рекомендуют, чтобы Вы ограничили предупреждения двумя кнопками и рассмотрели использование листа действия вместо этого при необходимости в больше.
Для добавления названной пользовательской кнопки к предупреждению отправьте его addButtonWithTitle:
сообщение. Также можно передать заголовок пользовательской кнопки, сопровождаемый запятой и nil
разделитель, с otherButtonTitles:
параметр, когда Вы инициализируете предупредительный объект представления.
Дополнительно, предупреждение может содержать одно или два текстовых поля, одно из которых может быть безопасным полем ввода текста. Вы добавляете текстовые поля к предупреждению после того, как оно будет создаваться путем установки alertViewStyle
свойство к одному из стилей, указанных UIAlertViewStyle
константы. Предупредительные стили представления не могут указать текстовое поле (стиль по умолчанию), одно поле простого текста, одно безопасное текстовое поле (который выводит на экран символ маркера, поскольку каждый символ вводится), или два текстовых поля (одна плоскость и одна безопасная) для размещения идентификатора для входа в систему и пароля.
Поведение предупредительных (программируемых) представлений
Если Ваше предупреждение имеет пользовательскую кнопку, необходимо назначить делегата обрабатывать действие кнопки, и делегат должен соответствовать UIAlertViewDelegate
протокол. Вы назначаете делегата с delegate
параметр, когда Вы инициализируете предупредительный объект представления. Делегат должен реализовать alertView:clickedButtonAtIndex:
сообщение для ответа, когда касается пользовательская кнопка; иначе, Ваши пользовательские кнопки ничего не делают. Например, следующий код показывает реализацию, просто регистрирующую заголовок кнопки, коснувшейся:
- (void)alertView:(UIAlertView *)theAlert clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSLog(@"The %@ button was tapped.", [theAlert buttonTitleAtIndex:buttonIndex]);
}
В методе делегата alertView:clickedButtonAtIndex:
, В зависимости от которого снабжают кнопками коснувшегося пользователя, можно получить значения текстовых полей в предупредительном представлении с textFieldAtIndex:
метод.
if (theAlert.alertViewStyle == UIAlertViewStyleLoginAndPasswordInput) {
NSLog(@"The login field says %@, and the password is %@.",
[theAlert textFieldAtIndex:0].text, [theAlert textFieldAtIndex:1].text);
}
Предупредительное представление автоматически отклонено после alertView:clickedButtonAtIndex:
метод делегата вызывается. Дополнительно, можно реализовать alertViewCancel:
метод для принятия соответствующих мер, когда система отменяет предупредительное представление. Когда пользователь касается кнопки «Домой», предупредительное представление может быть отменено в любое время системой — например. Если делегат не реализует alertViewCancel:
метод, поведение по умолчанию состоит в том, чтобы моделировать пользователя, щелкающего по кнопке отмены и закрывающего представление.
Появление предупредительных представлений
Вы не можете настроить появление предупредительных представлений.
Используя автоматическое расположение с предупредительными представлениями
Расположение предупредительных представлений обрабатывается для Вас. Вы не можете создать Автоматические Ограничения макета между предупредительным представлением и другим элементом пользовательского интерфейса.
Для получения общей информации об использовании Автоматического Расположения с представлениями iOS, посмотрите Используя Автоматическое Расположение с Представлениями.
Создание предупредительных доступных представлений
Предупредительные представления доступны по умолчанию.
Доступность для предупредительных представлений принадлежит предупредительному заголовку, предупредительному сообщению и заголовкам кнопки. Если VoiceOver активируется, он произносит слово «предупреждение», когда предупреждение показано, то говорит свой заголовок, сопровождаемый его сообщением, если установлено. Поскольку пользователь касается кнопки, VoiceOver говорит свой заголовок и слово «кнопка». Поскольку пользователь касается текстового поля, VoiceOver говорит свое значение и «текстовое поле» или “безопасное текстовое поле”.
Для получения общей информации о создании доступных представлений iOS, посмотрите Доступные Представления Создания.
Интернационализация предупредительных представлений
Для интернационализации предупредительного представления необходимо обеспечить локализованные переводы предупредительного заголовка, сообщения и заголовков кнопки. Экранные метрики и расположение могут измениться в зависимости от языка и локали.
Для получения дополнительной информации посмотрите Руководство по Интернационализации и Локализации.
Отладка предупредительных представлений
При отладке проблем с предупредительными представлениями наблюдайте за этой распространенной ошибкой:
Не тестирование локализаций. Обязательно протестируйте предупредительные представления в Вашем приложении с локализациями, которые Вы намереваетесь поставить. В частности заголовки кнопки могут усечь, если они более длинны в локализациях кроме той, в которой Вы разработали свой пользовательский интерфейс. После инструкции HI, чтобы дать кнопкам короткие, логические заголовки помогают повысить качество этой потенциальной проблемы, но также требуется тестирование локализации.
Элементы, подобные предупредительному представлению
Следующие элементы обеспечивают схожую функциональность для предупредительного представления:
Лист действия. Представьте лист действия, когда пользователи касаются кнопки на панели инструментов, давая им выбор, связанный с действием, они инициировали. Для получения дополнительной информации посмотрите Листы Действия.
Модальное Представление. Представьте модальное представление (т.е. контроллер представления использует модальный стиль презентации), когда пользователи инициируют подзадачу в контексте их потока операций или другой задачи. Для получения дополнительной информации посмотрите Ссылку класса UIViewController.