2013-05-31 36 views
1

我試圖讓它在一個方向上滾動時在uicollectionviewcell中的內容變大。我最初將單元格的大小設置爲我想要的最大大小,然後單元格內的內容大小爲一半。內容是一個uiimageview。UICollectionView與自定義UICollectionViewLayOut

所以我有一個自定義UICollectionViewFlowLayout在我的子類layoutAttributesForElementsInRect,使細胞中的UIImageView越鬧越大,當它在一個方向移動。我也有shouldInvalidateLayoutForBoundsChange返回YES 一切正常,當我滾動時,imageview會變大。但是,如果我選擇一個單元格推到一個新的viewcontroller,然後當我點擊後退按鈕回到這個uicolletionview,幾個單元格中放大的uiimageview顯示在原始大小。如果我再次滾動,他們只能回到正確的放大尺寸,爲什麼?我怎樣才能讓它在被推後保持其放大的尺寸?

我試過invalidatelayout,但它只是刷新layoutattributes與正確放大的內容大小,但視圖只是沒有更新,儘管大小已經放大。

感謝

回答

0

設計簡歷細胞會GESS問題是當子視圖得到調用來更新他們的大小,這可能不會發生時,視圖刷新時,我也有類似的問題。

而不是調整單元格中的內容大小,您可能需要動態調整單元格大小,並讓內容自動調整爲該大小。調用[mycollection invalidateLayout]應該是你需要的全部,甚至可能不是。

的方法是 的CollectionView:佈局:sizeForItemAtIndexPath: ,你在你的UICollectionViewFlowLayout.h

如果再遇到麻煩,其中的子視圖不與細胞大小調整申報,相關的問題可能出現從子視圖的約束/自動佈局等。

相關問題