ios – 如何在滚动时在表视图中插入表格视图单元格?

ios – 如何在滚动时在表视图中插入表格视图单元格?,第1张

概述我目前正在处理UITableView实例中显示的数据流.表视图顶部添加了新项目. 我面临的问题是,当新项目添加到表格视图时,可以看到动画和手势的轻微中断.当拖动(动画)之后表格视图减速时以及拖动表格视图时都会发生打嗝. 到目前为止,我已经尝试删除任何插入动画,并通过更新表视图的contentOffset来补偿插入.这些方法似乎都不起作用. 我刚刚想出了这个问题.当它到达最后一行时,我试图向tabl 我目前正在处理UItableVIEw实例中显示的数据流.表视图顶部添加了新项目.

我面临的问题是,当新项目添加到表格视图时,可以看到动画和手势的轻微中断.当拖动(动画)之后表格视图减速时以及拖动表格视图时都会发生打嗝.

到目前为止,我已经尝试删除任何插入动画,并通过更新表视图的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 – 如何在滚动时在表视图中插入表格视图单元格?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1023167.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存