У меня есть приложение, которое отображает информацию из нашего веб-сервиса. У пользователя есть возможность добавлять строки в табличное представление для отображения дополнительной информации. Я использую:
[self.tableView insertSections:indexSet withRowAnimation:UITableViewRowAnimationAutomatic];
чтобы вставить строку. Это дает хорошую анимацию, чтобы пользователь знал, где находится строка, которую он только что вставил. Моя проблема в том, что добавляемая строка должна быть видна, чтобы анимация была видна. Поэтому я прокручиваю вниз, чтобы была видна добавляемая строка:
[self.tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
, затем запустите ASIHTTPRequest
асинхронно, чтобы получить информацию для новой строки.
Если данных достаточно, анимация будет отличной. Проблема в том, что если пользователь подключен к сети Wi-Fi или не извлекает много информации, ASIHTTPRequest
возвращается до завершения прокрутки, и новая строка только там (пользователь не видит, что она добавляется). Если я заставлю задержку (0,03 секунды) между вызовами для прокрутки табличного представления и запуска запроса, я получу желаемый эффект, но тогда будет больше задержки, чем необходимо для нагрузок, которые уже отображались по желанию.
Я подумал, что постараюсь сэкономить время в мс с момента прокрутки представления и завершения запроса и убедиться, что оно дольше, чем 0,03 секунды, но я продолжал получать сообщение об ошибке с
[NSDate timeIntervalSinceReferenceDate]
поэтому я решил спросить здесь, есть ли лучший способ, прежде чем я взломаю это решение больше.
Спасибо!