Лучший диалог UIAlert - PullRequest
       3

Лучший диалог UIAlert

1 голос
/ 02 марта 2010

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

Моим первым предположением была какая-то форма зрения, но я вижу, что они меньше по размеру и центрированы на главном виде. Это все еще возможно пользовательский вид? Есть ли примеры такого случая, когда пользовательское представление отображается модально и требует продолжения или подтверждения перед продолжением?

Как всегда, заранее спасибо за любую информацию.

Geo ...

Ответы [ 4 ]

2 голосов
/ 03 марта 2010

Если вы хотите действительно пользовательскую замену UIAlertView, я создал подкласс UIView со стилем if UIAlertView в качестве демонстрации чертежа Quartz, исходный код которого можно найти здесь . Единственное, чего не хватает, так это пользовательского типа кнопки для представления предупреждений.

Однако будьте осторожны при использовании нестандартных видов предупреждений. Те из них, которые вам предоставлены, предназначены для обеспечения согласованности, чтобы пользователь мог работать с iPhone OS одинаково. Если вы создаете вещи, которые отличаются от остальной части ОС, это может привести к разочарованию, когда люди используют ваше приложение.

1 голос
/ 02 марта 2010

Чтобы создать настраиваемое оповещение, которое действует модально, вы можете сделать следующее:

Создание UIView с двумя подпредставлениями. Один из этих вложенных UIViews покрывает все окно (например, размером 320x480) с настроенным альфа-значением, чтобы отображать содержимое под ним затемненным. Подвид суб-брата является контейнером для вашего оповещения и должен быть первым.

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

Когда все виды настроены и размещены, добавьте вид сверху как подпредставление к чему-то вроде [[UIApplication sharedApplication] keyWindow]

[[[UIApplication sharedApplication]keyWindow] addSubview:myCustomAlertView];

ПРИМЕЧАНИЕ: причина того, что одноуровневые представления тускнеют и мешают событиям пользовательского интерфейса, заключается в том, что я уверен, что если вы уменьшите альфа суперпредставления, дочерние представления наследуют это свойство. По крайней мере, я помню, что имел дело с этим вопросом в прошлом. Я исправлюсь, если ошибаюсь.

- Я создал собственный класс оповещений, который, хотя и не является модальным в данный момент, автоматически отключается через несколько секунд или до истечения времени ожидания, если получено событие touchUpInside. Это просто UIView, который реагирует на нажатия. Я обнаружил, что в моем приложении было несколько областей, где я хотел показать краткое сообщение, но мне не нравилось постоянно нажимать кнопку «ОК», чтобы двигаться дальше. С помощью этого класса я могу выполнять другие действия даже до автоматического скрытия оповещения или просто нажать, чтобы быстро его потерять.

0 голосов
/ 02 марта 2010

Часто люди используют UIAlertView, и они просто помещают несколько новых строк в поле сообщения. Это даст вам желаемую высоту в зависимости от количества строк. Затем они добавляют любые дополнительные виды, вызывая addSubview:viewToAdd. Я знаю, что это боль и «взлом», но это стало довольно распространенным методом для людей. Вот сообщение на форуме, посвященное этой теме.

0 голосов
/ 02 марта 2010

Без какого-либо примера трудно точно сказать, что именно используется. Но в большинстве случаев UIActionSheet используется для таких пользовательских диалогов.

Ссылка на класс .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...