2012-10-13 168 views
1

我有一個使用UICollectionViewDelegateFlowLayout的UICollectionView。我添加了一種方法,可以在單擊單元格setCollectionViewLayout時更改佈局。UICollectionView更改佈局 - 更改單元格

所有的單元格都有文本標籤,我想在更改佈局時清空每個單元格上的所有文本標籤。什麼是最好的方式來實現這一目標?

感謝,

回答

3

我可以想象的最簡單的方法就是在您更改佈局,同時在您的收藏查看通話reloadData(並有一個條件在清空文本標籤您cellForItem數據源方法在每次佈局改變時)。

或者,您可以讓您的UICollectionViewCells跟蹤當前顯示的佈局,並相應地調整其視圖。

+0

謝謝你。我使用了[[[self collectionView] collectionViewLayout] isKindOfClass:[CircleLayout class]],效果很好。不知道這是否是最好的方法。現在唯一的問題是佈局之間的動畫並不真正起作用,因爲我調用了reloadData。 – Mikael

+0

我建議的第二種方法可能會更好地工作,並保留佈局之間的動畫 - 唯一的缺點是實施起來會有點困難。當你的佈局改變時,你可能想嘗試觸發一個'NSNotification',讓你的單元監聽它。這樣你永遠不必重新加載它們,動畫應該保持。 – lxt

+0

是的,這可能是要走的路。謝謝。在附註中,我試圖讓我的收藏查看功能與iPad上的照片應用類似。你認爲蘋果使用了一個collectionview,只改變了佈局嗎?也許我應該爲此提出第二個問題。 – Mikael