我试图让uicollectionviewcell中的内容在向一个方向滚动时变得更大。我最初将单元格的大小设置为我想要的最大尺寸,然后单元格内的内容是大小的一半。内容是一个uiimageview。
所以我有一个自定义 UICollectionViewFlowLayout ,其中我将 layoutAttributesForElementsInRect 子类化,以使细胞中的uiimageview在移入时变得更大一个方向。我还有 shouldInvalidateLayoutForBoundsChange 返回YES 当我滚动时,一切都很完美,图像视图会变得更大。但是,如果我选择一个单元格以推送到新的viewcontroller,然后当我单击后退按钮返回到这个uicolletionview时,几个单元格中的放大的uiimageview将以原始大小显示。如果我再次滚动,它们只能回到正确的放大尺寸,为什么?如何在推动后保持其放大尺寸?
我尝试了invalidatelayout但它只会刷新内容的正确放大尺寸的layoutattributes,但是只要尺寸已经放大,视图就不会更新。
感谢
答案 0 :(得分:0)
我在设计cv单元时遇到了类似的问题,并且问题在于子视图何时会调用更新它们的大小,这在视图刷新时可能不会发生。
您可能希望动态调整单元格的大小,并让内容自动调整为该大小,而不是调整单元格中的内容大小。然后调用[mycollection invalidateLayout]应该是你所需要的,甚至可能不是。
方法是 的的CollectionView:布局:sizeForItemAtIndexPath:强> 您在 UICollectionViewFlowLayout.h
中声明的内容如果您遇到麻烦,子视图不会随单元格大小调整大小,则子视图的约束/自动布局等会产生相关问题。