2017-03-08 71 views
1

是否可以動畫化UICollectionView標題(也稱爲UICollectionElementKindSectionHeader)大小更改的幀更改?UICollectionView referenceSizeForHeaderInSection動畫

換句話說,我希望我的UICollectionView頭具有兩個不同的可能框架,一個展開的(較大的高度)和一個摺疊模式(較小的高度)。通過點按某個按鈕,我希望標題可以使用自定義動畫在展開和摺疊模式之間切換。

現在我把它設置成這樣:

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

看來,你的問題是相似的[這一個](http://stackoverflow.com/questions/32933476/animate-uicollectionview-header-height-change),但不幸的是,沒有人回答它。 –

回答

2

您可以致電他們在UIView的動畫塊動畫的任何動畫視圖改變:

UIView.animate(withDuration: 0.5) { 
     self.collectionView?.collectionViewLayout.invalidateLayout() 
    }