При нажатии на кнопку для изменения вида / Нужно ли использовать синхронный метод в iPhone? - PullRequest
0 голосов
/ 31 августа 2010

Я создал вид прокрутки и установил кнопки в режиме прокрутки.Кнопки прокручиваются по горизонтали.Я создал табличное представление как подпредставление для контроллера представления.При нажатии на кнопки данные отображаются в виде таблицы из RSS-каналов с использованием XML-анализа.ТАК изменить данные в табличном представлении, которое зависит от нажатия кнопки.Когда я изменил, чтобы выбрать следующую кнопку, начнется анализ и отобразятся данные.так что это займет несколько раз.В то же время я хочу отобразить какое-либо представление или отключить представление (это означает, что в это время анализа представление отключено или пользователь не может делать что-либо вроде зависания с индикатором активности).При изменении каждой кнопки действие будет происходить.Я ссылался на некоторые учебные пособия, но я не могу понять?Некоторые люди говорили мне использовать синхронный метод для решения проблемы.Но я понятия не имею об этом.Пожалуйста, проведите меня и помогите. Дайте мне несколько примеров приложений и ссылок.

см. Мое изображение ниже,

image

Заранее спасибо!

С уважением,
Pugal

1 Ответ

1 голос
/ 31 августа 2010

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

Если вы просто хотите отключить ввод для текущего представления и его подпредставлений, вы можете сделать self.view.userInteractionEnabled = NO; в вашем контроллере представления.

Если вы хотитечтобы отключить ввод для всего окна, вы можете сделать self.view.window.userInteractionEnabled = NO;

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

self.overlayView = [[[UIView alloc] initWithFrame:self.view.window.bounds] autorelease];
self.overlayView.backgroundColor = [UIColor blackColor];
self.overlayView.alpha = 0.5f;
[self.view.window addSubview:self.overlayView];
self.activityIndicator = [[[UIActivityIndicator alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite] autorelease];
self.activityIndicator.center = self.view.window.center;
[self.view.window addSubview:self.activityIndicator];
[self.activityIndicator startAnimating];
self.activityLabel = [[[UILabel alloc] initWithFrame:CGRectZero] autorelease];
self.activityLabel.text = @"Loading...";
[self.activityLabel sizeToFit];
self.activityLabel.center = CGPointMake(self.activityIndicator.center.x, self.activityIndicator.center.y - self.activityIndicator.frame.size.height);
[self.view.window addSubview:self.activityLabel];
...