[IM] iOS 列表下拉加载更多,不跳跃

效果

image

对,就是简单的下拉加载更多

实现

这里给出了答案

简单点就是,使用旋转CGAffineTransformMakeRotation

  • 旋转下UICollectionViewUICollectionViewCell,还有滚动条
// UITableView也是如此
collectionView.transform = CGAffineTransformMakeRotation(-M_PI);
collectionView.scrollIndicatorInsets = UIEdgeInsetsMake(0.0, 0.0, 0.0, collectionView.bounds.size.width - 8.0);// 8 就是滚动条的宽度,好像比实际大一点
  • 和原答案有一点不同,使用IGListKit时,务必在创建Cell时旋转,不然最新的一条数据老是不能旋转,但使用UITableView是没有这个问题的
// 从Xib或Storyboard创建
- (void)awakeFromNib{
    [super awakeFromNib];
    self.contentView.transform = CGAffineTransformMakeRotation(-M_PI);
}

//或手动创建
- (instancetype)initWithFrame:(CGRect)frame{
    if (self = [super initWithFrame:frame]) {
        self.contentView.transform = CGAffineTransformMakeRotation(-M_PI);
    }
    return self;
}
  • 旋转后,下拉刷新使用MJRefreshAutoNormalFooter(因为旋转了180度)
  • 最后就是刷新,使用IGListKit可以做到局部刷新,如果使用reloadData是会跳跃的,因为它刷新了整个列表。

好了,唯一的不熟悉的大概就是IGListKit,不过相信聪明如你,这个IGListKit 教程还不是分分钟的事。

弯路

经历过复制粘贴的Baidu,你大概只能搜索到千篇一律的scrollRectToVisiblescrollToItemAtIndexPath。不太聪明的我,都试过,都会跳跃,而且很复杂。

没事多上stackoverflow,遇到这个问题的时候,我开始也不知道怎么搜索,最后我也想到旋转,就搜索iOS tableview reverse,没想到还真有

惯例

这个是我写的demo

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 你好,我是Eddie,TED商学院创始人。我有一个梦想,和一群志同道合的伙伴,建立富足村。在这里,我们可以相约结伴...
    有温度的Eddie阅读 1,424评论 10 21
  • 在我们成年人的世界里,“读书”这件事情或多或少都会带有一些“功利性”。有时候是为了学习以前从未接触过的领域知识,有...
    颜馨若水阅读 624评论 0 2
  • 日暮夕阳,云霞满天。 火烧的天空,呼啸的狂风,迷眼的黄沙,远处的小城若隐若现。 秦深站在沙丘上,望着夕阳,任狂风吹...
    惊采艳艳阅读 259评论 0 0
  • 刚刚接到三叔来电话,语言气愤又无奈。说让我给我弟(他儿子,90后独生子)打电话,让他晚上回家。他打电话给我弟,我弟...
    瑜紫阅读 140评论 1 2