工作古怪當我打電話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
或者你可以把一個空白部分。管他呢。
現在它工作正常。