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

时间:2017-11-07 15:59:12

标签: swift iglistkit

我正在尝试滚动到使用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)
    }
}

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

实际结果:

The actual result

所需的结果:

The desired result

如何获得我想要的结果?

2 个答案:

答案 0 :(得分:2)

或者,您可以使用UICollectionViewScrollPosition。顶部,而不是UICollectionViewScrollPosition.bottom并滚动到底部可以正常工作。并更新为Swift 4.x

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

答案 1 :(得分:1)

使用底层的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)
}