我面临的问题是,当新项目添加到表格视图时,可以看到动画和手势的轻微中断.当拖动(动画)之后表格视图减速时以及拖动表格视图时都会发生打嗝.
到目前为止,我已经尝试删除任何插入动画,并通过更新表视图的contentOffset来补偿插入.这些方法似乎都不起作用.
@H_404_14@解决方法 我刚刚想出了这个问题.当它到达最后一行时,我试图向tableVIEw添加新行.您无论何时何时都无法执行此 *** 作,或者您最终会在tableVIEw动画中出现断断续续的动画或突然停止.我发现在动画(或用户拖动手势)结束之前你无法启动beginAnimations / endAnimations块.要实现此目的,您必须检查两种方法:
– (voID)scrollVIEwDIDEndDragging:willDecelerate ::这将告诉你用户何时停止拖动tableVIEw,可能在tableVIEw的末尾.如果willDecelerate为NO,那就是告诉你用户将手指“握住”在tableVIEw上并刚刚解除它.这是添加行的好地方.您可以下载Twitter应用程序以查看此示例.试着把手指放在最后一排.在您解除推文之前,该应用不会更新推文.
– (voID)scrollVIEwDIDEndDecelerating:这将告诉您用户触摸了表视图并且正在减速,可能是在表视图的末尾.这是一个更新tableVIEw的好地方.
看看这个代码示例:
-(voID)shouldUpdateOnScrollVIEw:(UIScrollVIEw*)scrollVIEw{ // Check if we are at the end of the tableVIEw CGfloat currentOffset = scrollVIEw.contentOffset.y; CGfloat maximumOffset = scrollVIEw.contentSize.height - scrollVIEw.frame.size.height; // Change 10.0 to adjust the distance from bottom you want to check for if (maximumOffset - currentOffset <= 10.0) { // Do not throw an update if we are just updating if (!_loading && !_allDownloaded) { _loading = YES; // dispatch_async just to not break the current animation dispatch_async(dispatch_get_main_queue(),^{ [self obtainNextpostsFromBegining:NO]; }); } }}-(voID)scrollVIEwDIDEndDragging:(UIScrollVIEw *)scrollVIEw willDecelerate:(BOol)decelerate{ NSLog(@"%@ %@",NsstringFromSelector(_cmd),decelerate?@"YES":@"NO"); if (!decelerate) { // the user has just lifted it's finger. Check if we have to update [self shouldUpdateOnScrollVIEw:scrollVIEw]; }}-(voID)scrollVIEwDIDEndDecelerating:(UIScrollVIEw *)scrollVIEw{ NSLog(@"%@",NsstringFromSelector(_cmd)); // the tableVIEw has just stopped. Check if we have to update [self shouldUpdateOnScrollVIEw:scrollVIEw];}总结
以上是内存溢出为你收集整理的ios – 如何在滚动时在表视图中插入表格视图单元格?全部内容,希望文章能够帮你解决ios – 如何在滚动时在表视图中插入表格视图单元格?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)