2017-03-08 10 views
1

UICollectionViewヘッダー(またはUICollectionElementKindSectionHeaderとも呼ばれます)のフレーム変更をアニメートすることは可能ですか?UICollectionView referenceSizeForHeaderInSectionアニメーション

つまり、私はUICollectionViewヘッダーに2つの異なる可能なフレーム、拡大(より大きい高さ)と縮小モード(小さい高さ)を持たせたいと思います。どこかのボタンをタップすることで、ヘッダーをカスタムアニメーションで拡大/縮小モードに切り替えることができます。私はそれがこれに設定されている

電流:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize { 
    return CGSize(width: 0, height: HEADER_HEIGHT) 
} 

私はボタンをタップすると、この関数を呼び出すことによって、コレクションビューの高さを変えています

HEADER_HEIGHT = HEADER_HEIGHT == 100 ? 200 : 100 
self.collectionView?.collectionViewLayout.invalidateLayout() 

これは動作しますが、私は見つけることは至っていませんフレームのアニメーション化についてのドキュメントこれも可能ですか?

+0

をあなたの質問は、[この1](http://stackoverflow.com/questions/32933476に似ているようです/ animate-uicollectionview-header-height-change)、残念ながら、誰もそれに答えませんでした。 –

答えて

2

あなたはUIViewのアニメーションのブロックでそれらを呼び出すことにより、任意のアニメーション可能なビューの変更をアニメーション化することができます

UIView.animate(withDuration: 0.5) { 
     self.collectionView?.collectionViewLayout.invalidateLayout() 
    } 
関連する問題