2016-04-24 53 views
0

工作古怪当我打电话scrollToItemAtIndexPath方法来滚动到底用键盘上,UICollectionView.scrollToItemAtIndexPath动画与虚拟键盘

​​

我总是得到这个奇怪的动画。

Weird animation

它首先向下滚动到结束,向上滚动再次一点,向下滚动再次结束。为什么会发生这种情况,如何解决这个问题?

我检查过这发生在iOS 9.3模拟器。

回答

1

UICollectionView当它的contentInsets.top != 0显示此行为。 我没有明确地设置它,但它是由UIViewController自动设置的。这可以通过设置automaticallyAdjustsScrollViewInsets属性来禁用。

automaticallyAdjustsScrollViewInsets = false 

然后奇怪的动画神奇地消失。无论如何,现在我的收藏视图没有顶层空间,所以渲染效果很差。

Badly rendered UI

为了使这个手工工作,只是设置插图。

// 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 

或者你可以把一个空白部分。管他呢。

现在它工作正常。

Good animation