如何使用 IGListKit 滚动到部分的底部

Posted

技术标签:

【中文标题】如何使用 IGListKit 滚动到部分的底部【英文标题】:How to scroll to the bottom of a section with IGListKit 【发布时间】:2017-11-07 15:59:12 【问题描述】:

我正在尝试滚动到使用 IGListKit 实现的 UICollectionView 的底部。我这样做的方法:

func scrollToBottom(animated: Bool = true) 
    if let last = self.adapter.objects().last 
        self.adapter.scroll(
            to: last,
            supplementaryKinds: nil,
            scrollDirection: UICollectionViewScrollDirection.vertical,
            scrollPosition: UICollectionViewScrollPosition.bottom,
            animated: animated)
    

这确实滚动到最后一个项目,但是,它没有滚动到最后一个对象的底部。

实际结果:

想要的结果:

任何建议如何获得我想要的结果?

【问题讨论】:

【参考方案1】:

或者,您可以使用 UICollectionViewScrollPosition.top 代替 UICollectionViewScrollPosition.bottom 并滚动到底部正常工作。并更新到 Swift 4.x

self.adapter.scroll(
  to: self.<#arrayOfObjects#>.last, 
  supplementaryKinds: nil, 
  scrollDirection: .vertical, 
  scrollPosition: .top
  animated: true)

【讨论】:

【参考方案2】:

使用底层的 UICollectionView 和setContentOffset 方法解决了

func scrollToBottom(animated: Bool = true) 
    let bottomOffset = CGPoint(
        x: 0,
        y: self.collectionView.contentSize.height
            - self.collectionView.bounds.size.height
            + self.collectionView.contentInset.bottom)
    self.collectionView.setContentOffset(bottomOffset, animated: animated)

【讨论】:

以上是关于如何使用 IGListKit 滚动到部分的底部的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 IGListKit 强制重新加载所有部分?

IGListKit:获取当前可见的单元格索引

如何判断滚动条滚到页面底部并执行事件

使用嵌套适配器垂直滚动时出现滞后问题 | IGListKit

jquery如何判断滚动条滚到页面底部并执行事件

当用户点击 InputAccessoryView 时如何滚动到 CollectionView 的底部