Чтобы создать настраиваемое оповещение, которое действует модально, вы можете сделать следующее:
Создание UIView с двумя подпредставлениями. Один из этих вложенных UIViews покрывает все окно (например, размером 320x480) с настроенным альфа-значением, чтобы отображать содержимое под ним затемненным. Подвид суб-брата является контейнером для вашего оповещения и должен быть первым.
Игнорировать события в представлении диммера, соответствующим образом реагировать на нажатия или другие события в представлении контейнера предупреждений.
Когда все виды настроены и размещены, добавьте вид сверху как подпредставление к чему-то вроде [[UIApplication sharedApplication] keyWindow]
[[[UIApplication sharedApplication]keyWindow] addSubview:myCustomAlertView];
ПРИМЕЧАНИЕ: причина того, что одноуровневые представления тускнеют и мешают событиям пользовательского интерфейса, заключается в том, что я уверен, что если вы уменьшите альфа суперпредставления, дочерние представления наследуют это свойство. По крайней мере, я помню, что имел дело с этим вопросом в прошлом. Я исправлюсь, если ошибаюсь.
-
Я создал собственный класс оповещений, который, хотя и не является модальным в данный момент, автоматически отключается через несколько секунд или до истечения времени ожидания, если получено событие touchUpInside. Это просто UIView, который реагирует на нажатия. Я обнаружил, что в моем приложении было несколько областей, где я хотел показать краткое сообщение, но мне не нравилось постоянно нажимать кнопку «ОК», чтобы двигаться дальше. С помощью этого класса я могу выполнять другие действия даже до автоматического скрытия оповещения или просто нажать, чтобы быстро его потерять.