iphone поставил экран загрузки, пока таблица не будет готова к работе - PullRequest
0 голосов
/ 05 августа 2011

В моем приложении я использую несколько табличных представлений, которые мне нужны, чтобы поместить экран загрузки, когда пользователь нажимает на одну из ячеек в tableView.Я попытался установить новый UIView (ActivityIndicator и метку), а затем вызвать

[[self navigationController] pushViewController:newController animated:YES];

, после чего я могу отобразить экран загрузки, пока новый tableView готовит данные.Но этот подход не совсем сработал, на самом деле экран загрузки даже не отображался и просто застревал при предыдущем просмотре таблицы, пока не будет готов новый просмотр таблицы.

Так что я попытался по-другому, чтобы поставить экран загрузки сNSOperation / NSOperationQueue.Это работает, но экран загрузки немного запаздывает (показано в середине работы нового tableView).

Я хочу показать экран загрузки сразу после нажатия пользователем на ячейку, как я могу решить эту проблему?

Ответы [ 2 ]

3 голосов
/ 05 августа 2011

Я бы предположил, что ваш код загрузки данных помещен в фоновый поток и запущен.Затем создайте представление "загрузка ..." или что-то в этом роде.Это держит дисплей отзывчивым.Когда загрузка данных завершена, он может уведомить основной поток о том, что данные готовы, и главный поток может затем закрыть экран «Загрузка ...».

Другими словами, прочитайте об использовании потоков,требуются длительные задачи, такие как загрузка данных.

2 голосов
/ 05 августа 2011

Используйте [NSThread detachNewThreadSelector:(SEL)aSelector toTarget:(id)aTarget withObject:(id)anArgument] вместо NSOperation. Поместите код процесса tableView в отдельный метод и вызовите его в detachNewThreadSelector:@selecot(yourMethodName). Перед созданием этого потока начните анимировать ваш контроллер активности и остановитесь, когда поток закончится. Вы можете найти полную ссылку на NSThreading здесь -> http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSThread_Class/Reference/Reference.html. Надеюсь, это поможет.

Счастливого кодирования!

...