2016-04-24 14 views
0

で不気味動作します。UICollectionView.scrollToItemAtIndexPathアニメーションは、私はいつもこの奇妙なアニメーションを取得</p> ​​ <p>、仮想キーボード

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

関連する問題