Отключение взаимодействия с пользователем всех представлений, кроме одного - PullRequest
4 голосов
/ 12 сентября 2011

Я пытаюсь смоделировать поведение UIAlertView. В основном я хочу представить представление и отключить взаимодействие с пользователем всех других представлений на экране (кроме представленного представления). Как бы я поступил так?

Ответы [ 3 ]

10 голосов
/ 12 сентября 2011

Ваш вид предупреждения должен состоять из двух видов.Первый размер экрана - userInteractionEnabled, установленный на YES.Это предотвращает любые прикосновения, проходящие к представлениям внизу.Затем в качестве подпредставления этого представления вы добавляете фактическое окно оповещения с любыми кнопками и т. Д., Которые вам нравятся.

Вы можете поместить оба из них в новый UIWindow, который вы можете установить на windowLevel, чтобы убедиться, что они находятся над чем-либо еще на экране.

Вы также можете добавить очень небольшое значение backgroundColor к представлению размером с экран, которое затемнит все, что позади него, если это подходит для вашего интерфейса.

1 голос
/ 12 сентября 2011

Я бы порекомендовал добавлять представление (с отключенным взаимодействием с пользователем) с черным фоном с альфа-значением 0,3 в главное окно приложения всякий раз, когда вы показываете свое настраиваемое оповещение. Это, в дополнение к предотвращению взаимодействия с пользователем, также добавляет этот тонкий эффект затемнения к пользовательскому интерфейсу за вашим настраиваемым представлением предупреждений.

0 голосов
/ 12 сентября 2011

Позвоните [view setUserInteractionEnabled:NO] во всех представлениях, для которых вы хотите отключить взаимодействие с пользователем.Не забудьте позвонить на них [view setUserInteractionEnabled:YES]; еще раз, прежде чем вы отключите свой пользовательский просмотр предупреждений.

...