Tag: uicollectionviewlayout

删除UICollectionView中的最后一个单元格会导致崩溃

嗨我正在与一个自定义UICollectionView( https://github.com/SureCase/WaterfallCollectionView )一切工作正常。 现在我从UICollectionView设置删除项目,我可以删除它们。 当我试图删除该部分的最后一个项目时出现问题。 它给出了以下错误。 *** Assertion failure in -[UICollectionViewData layoutAttributesForSupplementaryElementOfKind:atIndexPath:], /SourceCache/UIKit/UIKit-2935.137/UICollectionViewData.m:787 *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'no UICollectionViewLayoutAttributes instance for -layoutAttributesForSupplementaryElementOfKind: UICollectionElementKindSectionHeader at path <NSIndexPath: 0xc000000000000016> {length = 2, path = 0 – 0}' 我用来删除项目的代码如下: – (void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { if (buttonIndex == 0){ NSLog(@"Erasing Objects!"); //First I […]

uicollectionview加载的很好

我使用flowlayout as创build了一个带有自定义集合cell.set的集合视图 UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init]; [flowLayout setItemSize:CGSizeMake(250, 480)]; [flowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal]; [self.templateCollectionView setCollectionViewLayout:flowLayout]; 我把它设置成水平的,但是仍然有一个单元格错位,请看att mmp错误的位置,如果我们滚动并重新加载它,它将返回到正确的位置。 任何人都可以提出这是什么错?

iOS UICollectionViewCells与交叉点的布局

我尝试用单元格制作UICollectionView ,它们在屏幕截图中完成相交和部分重叠。 这个布局是通过设置达到的 self.minimumLineSpacing = -100; 在我的UICollectionViewFlowLayout子类。 当我向下滚动时,一切正常。 我明白我想要什么 但是当我向上滚动时,我看到另一种行为,不像我预期的那样: 所以我的问题是:无论滚动视图的方向,我怎样才能让我的布局看起来像第一个屏幕。 注意 :我必须同时支持iOS 6和7。 非常感谢任何build议和任何帮助。

在UICollectionView布局中自定义头的位置会导致NSInternalInconsistencyException错误

我试图自定义UICollectionView使用子类UICollectionViewFlowLayout类(基于宽松的代码堆叠标题显示input链接描述在这里 )的标头的位置。 作为一个最小的testing,让我们说我只是想添加一个固定的偏移量到所有标题的位置: 我将所有的头添加到由layoutAttributesForElementsInRect返回的数组中,以便所有的头都被处理(这可能是问题的原因,我不确定) 然后,我通过在layoutAttributesForSupplementaryViewOfKind添加一个固定的偏移来更新每个头 完整的实现包括在这篇文章的末尾。 (顺便说一句,我知道添加所有标题,包括rect之外的所有标题,在第一步中并不是严格意义上的必要,但这是一个简单的例子,我想创build一个更复杂的定制,这将导致所有标题将被显示在绘制rect)。 但是,当我运行代码时,我得到以下NSInternalInconsistencyException : 2014-01-15 00:41:50.130 CollectionStackedHeaders[60777:70b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'layout attributes for supplementary item at index path (<NSIndexPath: 0x8a7db90> {length = 2, path = 0 – 0}) changed from <UICollectionViewLayoutAttributes: 0x8a7f8b0> index path: (<NSIndexPath: 0x8a7d9c0> {length = 2, path = 0 – 0}); […]

UICollectionView水平滚动与水平alignment

我想有一个分页的UICollectionView ,每个页面显示从左到右的单元格。 现在我可以用经典的UICollectionViewFlowLayout和 layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; 结果如下: page 1 page 2 cell 1 | cell 3 || cell 5 | cell 7 cell 2 | cell 4 || cell 6 | cell 8 我现在想要达到的是: page 1 page 2 cell 1 | cell 2 || cell 5 | cell 6 cell 3 | cell 4 || […]

UICollectionViewData在ios7上的validateLayoutInRect声明失败

UICollectionViewData上的UICollectionViewData validateLayoutInRect声明失败。 我试图删除所有的UICollectionView项目,一个接一个,使用for循环; 我在下面发布我的代码。 我使用deleteItemsAtIndexPaths删除了UICollectionView项目。 它在iOS6上完美工作 ,但在iOS7中崩溃 ,但有以下例外情况: UICollectionViewData中的断言失败validateLayoutInRect 我从collectionArray删除对象,然后self.collectionView ,使用indexPath 。 当我删除第四个对象,在iOS7上引发Assertion failure 。 这里我使用了performBatchUpdates 。 请帮助我在iOS7中获得正确的结果。 分享正确的代码。 提前致谢。 try { for (int i=count-1; i>=0; i–) { [self.collectionView performBatchUpdates:^(void){ [collectionArray removeObjectAtIndex:i]; // First delete the item from you model [self.collectionView deleteItemsAtIndexPaths:@[[NSIndexPath indexPathForRow:i inSection:0]]]; } completion:nil]; [self.collectionView reloadData]; } } @catch (NSException *exception) { } […]

独立滚动UICollectionView的每个部分?

是否有可能使用UICollectionViewbuild立一个布局,每个部分可以独立滚动? 例如,设想20行图像,其中每行可以独立水平滚动以显示更多的图像(不滚动过程中的其他行)。 整个视图可以垂直滚动显示更多的行。 我相信像这样的东西可以用一个UIScrollView内的多个UICollectionView实例来实现; 然而,利用UICollectionView来插入/移动部分会很好。 我怀疑这是不实际的,因为UICollectionView是UIScrollView的子类; 但也许这可以用自定义的UICollectionViewLayout来完成?

UICollectionViewFlowLayout的严重错误:水平滚动模式下的minimumInteritemSpacing和minimumLineSpacing

我在水平滚动模式 ( iOS 8 , iOS 7 ,我testing过的唯一一个)中面对以下UICollectionView错误。 我的问题 我想就这个错误以及如何优雅地解决这个问题发表看法。 设置 UICollectionViewFlowLayout * layout ; layout = [[UICollectionViewFlowLayout alloc] init] ; layout.scrollDirection = UICollectionViewScrollDirectionHorizontal ; layout.minimumInteritemSpacing = 5 ; layout.minimumLineSpacing = 100 ; 错误 这是很难解释,但我会尽我所能。 当UICollectionView中的单元格不具有相同的大小时,会发生该错误。 当所有的细胞有相同的大小,看起来像这样 但只要其中一个单元的大小与其他单元的大小不同,就像这样 所以,它似乎交换了minimumInteritemSpacing和minimumLineSpacing 。 链接到一个最小的非工作示例 https://github.com/colasjojo/TEST_COLLECTION_VIEW_BUG 更多的代码 #import "ViewController.h" #import "MyCell.h" @interface ViewController () @property (weak, nonatomic) IBOutlet UIView […]

防止在新行开始uicollectionview部分

我在uicollectionview上使用stream布局。 这一切看起来不错,除了似乎开始另一条线上的另一节。 这似乎是一个合理的默认,但我怎么重写这一点,使部分在同一行无缝stream动,就像没有新的部分开始? 谢谢!

如何将一个背景图像添加到将滚动和缩放的单元格的UICollectionView

我正在使用UICollectionView构build马赛克视图。 我已经分类UICollectionViewFlowLayout来布局一个固定的网格,可以水平和垂直滚动。 我还附加了一个UIPinchGestureRecognizer,以便集合可以缩放/缩放。 集合中的每个单元格都包含具有某种透明度的UIImage。 我想添加一个背景图像,将滚动和放大单元格。 我尝试了许多不同的解决scheme。 使用colorWithPatternImage设置UICollectionView的背景颜色。 ( 不滚动/调整内容大小 ) 将每个单元格上的背景图像视图设置为背景图像的相关裁剪部分。 ( 使用太多内存 ) 我一直在寻找补充和装饰的意见,但努力让我的头。 我想我需要使用补充视图,因为在后台使用的图像将根据数据源而改变。 我不明白的是如何注册一个补充视图,以跨越整个集合视图的宽度和高度。 他们似乎被绑定到indexPath,即每个单元格。