2013-05-31 37 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

如果再遇到麻烦,其中的子视图不与细胞大小调整申报,相关的问题可能出现从子视图的约束/自动布局等。

相关问题