Как заблокировать пользовательский интерфейс в iPhone

Как я могу заблокировать поток пользовательского интерфейса без использования сна?

Просто для ясности: я понимаю, что пользовательский интерфейс зависнет для пользователя, но это идея.

Могу ли я запускать пустые циклы RunLoop? Любые другие способы.


person user349302    schedule 24.06.2010    source источник
comment
вы хотите заблокировать поток или просто отключить взаимодействие пользователя с пользовательским интерфейсом?   -  person Vladimir    schedule 25.06.2010
comment
Я бы сказал, что блокировка, но отключение также может работать ... так что ... как я могу отключить пользовательский интерфейс (все кнопки, вкладки и т. Д.)? Спасибо   -  person user349302    schedule 25.06.2010
comment
InteractionEnabled для NO установлен в корневом представлении?   -  person user349302    schedule 25.06.2010


Ответы (1)


Если вы просто хотите заблокировать все взаимодействие с вашим пользовательским интерфейсом, вызовите метод UIApplication -beginIgnoringInteractionEvents. Если вы на самом деле пытаетесь запретить всему пользовательскому интерфейсу что-либо делать (что не очень хорошая идея — например, ваше приложение может заблокировать появление системного уведомления), то да, NSRunLoop, вероятно, будет правильным подходом.

person Noah Witherspoon    schedule 24.06.2010
comment
да, это нормально. А просто для примера: как с помощью RunLoop заблокировать все? - person user349302; 25.06.2010
comment
Я не слишком знаком с циклами выполнения, но я думаю, что запуск одного из них с -run или -runUntilDate: сделает это. - person Noah Witherspoon; 25.06.2010