Ios UICollectionViewCell宽度的动态变化
我有一个带有imageView和collectionView的视图。ImageView位于屏幕左上角,大小为(150250)。CollectionView为全屏。collectionView的单元格内有标签 当单元格靠近imageView时,其宽度应较小。当单元格低于imageView时,应为全宽。这在滚动时也应该起作用,所以单元格的大小应该动态变化。所以,我需要做一个自定义布局。我想,“layoutAttributesForElementsInRect:”是一个答案。但如何使单元格属性在某个矩形中发生变化?还是我看错了方向? 先谢谢你Ios UICollectionViewCell宽度的动态变化,ios,uicollectionview,uicollectionviewcell,uicollectionviewlayout,Ios,Uicollectionview,Uicollectionviewcell,Uicollectionviewlayout,我有一个带有imageView和collectionView的视图。ImageView位于屏幕左上角,大小为(150250)。CollectionView为全屏。collectionView的单元格内有标签 当单元格靠近imageView时,其宽度应较小。当单元格低于imageView时,应为全宽。这在滚动时也应该起作用,所以单元格的大小应该动态变化。所以,我需要做一个自定义布局。我想,“layoutAttributesForElementsInRect:”是一个答案。但如何使单元格属性在某个矩
我认为您正在寻找
invalidateLayout
方法,您可以调用UICollectionView
的collectionViewLayout
属性。此方法会重新生成布局,在您的情况下,这意味着还需要调用-collectionView:layout:sizeForItemAtIndexPath:
,这是反映所需项目大小的正确位置。Jirune为如何计算它们指出了正确的方向
使用的示例。另请参阅有关该方法的UICollectionViewLayout
文档:
使当前布局无效并触发布局更新
讨论:
您可以随时调用此方法来更新布局信息。
此方法使集合视图本身的布局无效,并且
马上回来。因此,您可以从中多次调用此方法
不触发多个布局更新的相同代码块。这个
实际布局更新发生在下一个视图布局更新周期中
谢谢你的回答。我想,应该有一个例子链接?这不是我真正需要的。我在scrollViewDidScroll:中使用invalidateLayout方法,这很有效。谢谢。还值得注意的是,collectionView:layout:SizeFormiteIndeXPath:是UICollectionViewDelegateFlowLayout协议中的一个方法。