我有一个应用程序,显示来自我们的Web服务的信息。用户可以选择将行添加到表视图以显示更多信息。我正在使用:
[self.tableView insertSections:indexSet withRowAnimation:UITableViewRowAnimationAutomatic];
插入行。它提供了一些很好的动画,因此用户知道它们刚刚插入的行。我的问题是要添加的行必须在视图中才能看到动画。所以我向下滚动,以便在视图中添加要添加的行:
[self.tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
然后异步启动ASIHTTPRequest
以获取新行的信息。
如果有相当数量的数据,动画显示效果很好。问题是,如果用户使用WiFi或没有提取太多信息,则ASIHTTPRequest
会在滚动完成之前返回,而新行就在那里(用户看不到它被添加)。如果我在调用滚动表视图并启动请求之间强制延迟(。03秒),我会得到所需的效果,但是在已经根据需要显示的负载上存在比所需更长的延迟。 / p>
我以为我会尝试节省时间,以毫秒为单位,从滚动视图和请求完成时开始,并确保它超过.03秒,但我一直收到错误
[NSDate timeIntervalSinceReferenceDate]
所以我想我会在这里询问是否有更好的方法可以在我更多地攻击该解决方案之前。
谢谢!
答案 0 :(得分:0)
使用计时器和几个标志的组合将帮助你,这基本上就是你已经在做的。