工作古怪当我打电话scrollToItemAtIndexPath
方法来滚动到底用键盘上,UICollectionView.scrollToItemAtIndexPath动画与虚拟键盘
我总是得到这个奇怪的动画。
它首先向下滚动到结束,向上滚动再次一点,向下滚动再次结束。为什么会发生这种情况,如何解决这个问题?
我检查过这发生在iOS 9.3模拟器。
工作古怪当我打电话scrollToItemAtIndexPath
方法来滚动到底用键盘上,UICollectionView.scrollToItemAtIndexPath动画与虚拟键盘
我总是得到这个奇怪的动画。
它首先向下滚动到结束,向上滚动再次一点,向下滚动再次结束。为什么会发生这种情况,如何解决这个问题?
我检查过这发生在iOS 9.3模拟器。
UICollectionView
当它的contentInsets.top != 0
显示此行为。 我没有明确地设置它,但它是由UIViewController
自动设置的。这可以通过设置automaticallyAdjustsScrollViewInsets
属性来禁用。
automaticallyAdjustsScrollViewInsets = false
然后奇怪的动画神奇地消失。无论如何,现在我的收藏视图没有顶层空间,所以渲染效果很差。
为了使这个手工工作,只是设置插图。
// collectionView.contentInset.top = 20 + 44
collectionView.scrollIndicatorInsets.top = 20 + 44
但是,如果我们设置contentInset.top
为非零值,这再次显示了怪异的动画,所以你不应该设置。而不是,我们应该尝试另一种解决方法。例如,如果您正在使用流布局,则可以调整UICollectionViewFlowLayout.sectionInset.top
。
collectionView.scrollIndicatorInsets.top = 20 + 44
let flowLayout = (collectionView.collectionViewLayout as? UICollectionViewFlowLayout)
flowLayout?.sectionInset.top = 20 + 44
或者你可以把一个空白部分。管他呢。
现在它工作正常。