Отключить пользовательский интерфейс и элементы управления

#iphone #objective-c #uikit

#iPhone #objective-c #uikit

Вопрос:

Когда пользователь нажимает на кнопку, появляется всплывающее окно, похожее на это изображение. Но когда я нахожусь в медленном Интернете, всплывающее окно загружается некоторое время. поэтому, пока не загрузится всплывающее окно, мне нужно, чтобы вид в фоновом режиме (где находится кнопка) зависал (отключался), и пользователь не должен иметь возможности нажимать на какие-либо элементы управления.

Как я могу отключить просмотр / управление?

Комментарии:

1. Подумайте о том, чтобы добавить какой-нибудь визуальный индикатор, такой как UIActivityIndicator, в свой вид, ожидая отображения всплывающего окна. В противном случае пользователь может подумать, что приложение просто зависло.

Ответ №1:

Смотрите -[UIView userInteractionEnabled]

http://developer.apple.com/library/ios/documentation/uikit/reference/uiview_class/uiview/uiview.html#//apple_ref/occ/instp/UIView/userInteractionEnabled

Установить

 view.userInteractionEnabled = NO;
  

В родительском представлении элементы управления, которые вы хотите отключить.

Комментарии:

1. я думаю, я мог бы написать этот код в функции нажатия кнопки. при нажатии кнопки код выполняется и вызывает всплывающее окно, а затем отключает просмотр с помощью view.userInteractionEnabled = NO; я прав?

2. Да, похоже, это сработает. При обратном вызове после завершения диалога вы можете установить его обратно на YES .

Ответ №2:

Установите для свойства кнопки enabled значение NO — если вы используете UIButton или его подкласс.

пример.

 [button setEnabled:NO];
  

Ответ №3:

 UIView *testView = [[UIView alloc] init];
testView.userInteractionEnabled = NO;
  

Комментарии:

1. «someView.enabled» // не является допустимым кодом в objective-c.