gpt4 book ai didi

ios - UICollectionView.scrollToItemAtIndexPath 动画与虚拟键盘一起工作很奇怪

转载 作者:行者123 更新时间:2023-11-29 01:02:46 33 4
gpt4 key购买 nike

当我调用 scrollToItemAtIndexPath 方法滚动到底部并打开键盘时,

collectionView.scrollToItemAtIndexPath(indexPath, atScrollPosition: .None, animated: true)

我总是看到这种奇怪的动画。

Weird animation

它先向下滚动到最后,再向上滚动一点,再向下滚动到最后。为什么会发生这种情况,我该如何解决?

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

最佳答案

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

automaticallyAdjustsScrollViewInsets = false

然后奇怪的动画神奇地消失了。不管怎样,现在我的 Collection View 没有顶部空间,所以渲染得很糟糕。

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

关于ios - UICollectionView.scrollToItemAtIndexPath 动画与虚拟键盘一起工作很奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36820363/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com