Tag: reloaddata

UICollectionView卡在reloadData中

我遇到了[UICollectionView reloadData]问题,在它指定的numberOfSectionsInCollectionView上调用numberOfSectionsInCollectionView之前,似乎停滞了很久。 这是发生了什么事情: 应用程序以UICollectionView立即可见并在代理上调用numberOfSectionsInCollectionView ,该代理返回空数组(即0)中的项目数,并立即开始从Web服务下载数组的数据。 一旦下载完成,数据被反序列化并添加到上面的数组中,然后在UICollectionView实例上调用reloadData 。 这是应用程序似乎停止做任何事的地方,20-30秒(或有时长达一分钟)之后,委托接收对numberOfSectionsInCollectionView的调用。 一旦收到这个呼叫,重新加载就会很快完成。 我相信reloadData在自己的线程运行,但我已经尝试在一个单独的线程启动它,以确保它不是我的任何代码阻止进程。 什么可以重新reloadData正在做,而它似乎卡住了? reloadData和numberOfSectionsInCollectionView之间有什么中介委托方法,我应该实现? 就iOS开发者而言,我认为这是第一个被重载的方法。 如果有人可以告诉我可能会出现什么问题,那就太棒了,但是我也很感谢有关如何debugging的提示。

UITableView reloadData需要太多的时间

我正在使用TBXML + HTTP从网站获取XML数据。 我想要做的是用处理的数据填充一个UITableView。 我创build了一个包含所有条目的NSMutableArray,就这一点而言,一切工作正常。 问题是,当成功从服务器获取数据并将其存储在数组中后,我尝试使用reloadData更新表以显示数据。 用20行填充表格大约需要5秒钟的时间。 怪异的部分是抓取发生得非常快,所以数据立即可用。 我不明白这是多久了。 以下是日志中的一些信息: 2012-03-17 18:46:01.045 MakeMyApp[4571:207] numberOfSectionsInTableView: 1 2012-03-17 18:46:01.047 MakeMyApp[4571:207] numberOfRowsInSection: 0 2012-03-17 18:46:01.244 MakeMyApp[4571:1f03] numberOfSectionsInTableView: 1 2012-03-17 18:46:01.245 MakeMyApp[4571:1f03] numberOfRowsInSection: 20 2012-03-17 18:46:01.245 MakeMyApp[4571:1f03] Ok, I'm done. 20 objects in the array. 2012-03-17 18:46:01.246 MakeMyApp[4571:1f03] Finished XML processing. 2012-03-17 18:46:06.197 MakeMyApp[4571:1f03] cellForRowAtIndexPath: 正如你所看到的,它激发了numberOfSectionsInTableView: / numberOfRowsInSection:两次:第一次是当视图加载时,第二次是当我做[self.tableView reloadData]; […]

; 导致闪烁

问题是用户界面出现,然后得到更新:闪烁的影响。 当用户input应用程序时,我只想更新用户界面一次,因此我已经把重新加载到ViewDidLoad ..这里是代码..任何帮助如何消除这种闪烁…一些代码示例将有所帮助。 – (void)viewDidLoad { [super viewDidLoad]; self.myTableView.dataSource = self; self.myTableView.delegate = self; PFQuery * getCollectionInfo = [PFQuery queryWithClassName:@"Collection"]; // make query [getCollectionInfo orderByDescending:@"updatedAt"]; [getCollectionInfo setCachePolicy:kPFCachePolicyCacheThenNetwork]; dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_async(queue, ^{ [getCollectionInfo findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) { if (!error) { CollectionQueryResult = (NSMutableArray *)objects; [self.tableView reloadData]; // whenevr get result } else{ […]

刷新UICollectionView

有没有人知道如何重新加载/刷新UICollectionView集合视图正在显示? 基本上我正在寻找类似于UITableview的标准reloadData方法。

如何过滤UICollectionView并保持键盘?

我已经将UISearchBar添加到UICollectionView并在委托searchBar:textDidChange:筛选我的模型,并调用[collectionView reloadData] 。 reloadData (以及reloadSection等)想要从search栏的文本字段中取出firstResponder,从而解散键盘。 我正在尝试构build一个“实时更新”filter,因此在input每个字符后都会让键盘消失。 有任何想法吗?

用animation重新加载表格视图单元格(Swift)

有没有办法重新加载具有animation多个部分的特定UITableView单元格? 我一直在使用: self.TheTableView.reloadSections(NSIndexSet(index: 1), withRowAnimation: UITableViewRowAnimation.Right) 这虽然激活了该部分中的所有单元格。 另一种select是使用: self.TheTableView.reloadRowsAtIndexPaths(<#indexPaths: [AnyObject]#>, withRowAnimation: <#UITableViewRowAnimation#>) 编辑: 使用reloadRowsAtIndexPaths后 由于未捕获的exception“NSInternalInconsistencyException”而终止应用程序,原因是:“无效的更新:第1部分中的行数无效。更新(5)后现有节中包含的行数必须等于该节中包含的行数(4)加上或减去从该部分插入或删除的行数(0插入,0删除),加上或减去移入或移出该部分的行数(0移入,0移入出)。” 尝试通过将对象附加到数组中来find重新加载tableview的顺利方式。 在reloadRowsAtIndexPaths工作之前调用TheTableView.reloadData(),但animation是有问题的。 还有另一种方法吗?

; 直到我滚动tableView不工作

我有一个简单的应用程序,当用户键入一个UISearchBar时,用XML下载search结果。 下载+parsing是线程化的,一旦完成,它触发一个NSNotification来告诉ViewController的table view到[tableView reloadData]; 下面是接收结果发出后通知的代码: – (void)receivedResults:(id)notification { results = [notification object]; DLog(@"Received %i results",[results count]); [[self tableView] reloadData]; } 我得到日志输出“接收4结果”,但表格视图不重新加载数据,直到我滚动/拖动它几个像素。 我正在使用内置的UITableViewCellStyleSubtitle单元格风格,即时通讯不会改变高度或任何东西喜欢与表视图。 我究竟做错了什么?

调用-reloadData后如何保持UITableView的contentoffset

CGPoint offset = [_table contentOffset]; [_table reloadData]; [_table setContentOffset:offset animated:NO]; //unuseful // __block UITableView *tableBlock = _table; // [self performBlock:^(id sender) { // [tableBlock setContentOffset:offset]; // } afterDelay:2]; 我知道在reloadData之后没有调用委托方法。 而且afterDelay:2可能太短或太长,那我该如何实现呢? 我的英文不好,我希望你能理解…

在AFNetworking成功调用后self.tableView reloadData不工作

我有一个运行类似于本教程的AFHTTPSessionManager组件的类http://www.raywenderlich.com/59255/afnetworking-2-0-tutorial 但是,[self.tableView reloadData]不适合我。 我有这样的经理实施: -(void) refresh{ manager = [[AFHTTPSessionManager…] iniwithBaseURL:…]; [manager Get:… parameters:… success:^(NSURLSessionDataTask *task, id responseObject){ //test success values in responseObject if(test){ //Get table data [self.tableView reloadData]; } } …. } 但是,如果我后来运行[self.tableView reloadData]在一个单独的函数,它工作得很好。 为什么会发生这种情况,而不是如何在教程中?

iOS – 另一个线程需要将reloadData发送到mainthread

我有一个单独的线程创build一个UIView对象,将其插入到UITableView的数据源中,然后调用UITableView上的reloadData。 然而,由于它是一个单独的线程,它不能直接调用reloadData,它需要使主线程做到这一点…但你怎么告诉主线程做到这一点? 谢谢