Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UICollectionViewCell宽度的动态变化_Ios_Uicollectionview_Uicollectionviewcell_Uicollectionviewlayout - Fatal编程技术网

Ios UICollectionViewCell宽度的动态变化

Ios UICollectionViewCell宽度的动态变化,ios,uicollectionview,uicollectionviewcell,uicollectionviewlayout,Ios,Uicollectionview,Uicollectionviewcell,Uicollectionviewlayout,我有一个带有imageView和collectionView的视图。ImageView位于屏幕左上角,大小为(150250)。CollectionView为全屏。collectionView的单元格内有标签 当单元格靠近imageView时,其宽度应较小。当单元格低于imageView时,应为全宽。这在滚动时也应该起作用,所以单元格的大小应该动态变化。所以,我需要做一个自定义布局。我想,“layoutAttributesForElementsInRect:”是一个答案。但如何使单元格属性在某个矩

我有一个带有imageView和collectionView的视图。ImageView位于屏幕左上角,大小为(150250)。CollectionView为全屏。collectionView的单元格内有标签

当单元格靠近imageView时,其宽度应较小。当单元格低于imageView时,应为全宽。这在滚动时也应该起作用,所以单元格的大小应该动态变化。所以,我需要做一个自定义布局。我想,“layoutAttributesForElementsInRect:”是一个答案。但如何使单元格属性在某个矩形中发生变化?还是我看错了方向? 先谢谢你


我认为您正在寻找
invalidateLayout
方法,您可以调用
UICollectionView
collectionViewLayout
属性。此方法会重新生成布局,在您的情况下,这意味着还需要调用
-collectionView:layout:sizeForItemAtIndexPath:
,这是反映所需项目大小的正确位置。Jirune为如何计算它们指出了正确的方向

使用的示例。另请参阅有关该方法的
UICollectionViewLayout
文档:

使当前布局无效并触发布局更新

讨论:

您可以随时调用此方法来更新布局信息。 此方法使集合视图本身的布局无效,并且 马上回来。因此,您可以从中多次调用此方法 不触发多个布局更新的相同代码块。这个 实际布局更新发生在下一个视图布局更新周期中


谢谢你的回答。我想,应该有一个例子链接?这不是我真正需要的。我在scrollViewDidScroll:中使用invalidateLayout方法,这很有效。谢谢。还值得注意的是,collectionView:layout:SizeFormiteIndeXPath:是UICollectionViewDelegateFlowLayout协议中的一个方法。