我正在尝试滚动到使用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)
}
}
这会滚动到最后一项,但是它没有滚动到最后一个对象的底部。
实际结果:
所需的结果:
如何获得我想要的结果?
答案 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)
}