Tag: uicollectionview

具有dynamic高度的UICollectionView不在单元格之间获得相同的空间

我有这样的类似问题 我在运行时产生了高度的视图。这是我的代码 @interface CollectionViewController () { NSMutableArray *arrMain; } @property(nonatomic,strong) NSMutableArray *arrMain; @end @implementation CollectionViewController @synthesize arrMain, – (void)viewDidLoad { [super viewDidLoad]; [cView registerNib:[UINib nibWithNibName:@"CViewCell" bundle:nil] forCellWithReuseIdentifier:kCellID]; CViewFlowLayout *fl = [[CViewFlowLayout alloc] init]; self.cView.collectionViewLayout = fl; NSString *strJson = MY FUNCTION WHICH RETURNS JSON STRING; SBJSON *parser = [[SBJSON alloc] init]; self.arrMain = [[NSMutableArray alloc] […]

UICollectionView:不会在重复使用的项目上计算不同大小的项目

我有一个收集视图与我声明的不同项目大小 – (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { FeedItem *item = [_imagesLinkArray objectAtIndex:indexPath.row]; return CGSizeMake(250, 200*item.sizeFactor); } 当单元格在collectionView:cellForItemAtIndexPath:被重新使用时collectionView:cellForItemAtIndexPath:正在使用reuesed项目大小呈现项目,而不是在sizeForItemAtIndexPath:指定的sizeForItemAtIndexPath: 。 有任何想法吗?

ios UICollectionView单元格之间的顶部/底部分离

我有一个集合视图,工作正常,我已经调整了X填充的分离, 它工作正常,但对于单元格之间的Y填充,似乎不适应NO分离 这是我的布局代码 UICollectionViewFlowLayout *layoutItem=[[UICollectionViewFlowLayout alloc] init]; layoutItem.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0); 那么我怎样才能设置顶部/底部的分离到0px? 细胞之间? 谢谢!

iOS 8 GM不会更新集合视图的约束

在Xcode 6 Beta 7及之前的所有版本中,我有一个集合视图,当iPad在横向和纵向之间旋转时,它将更新其单元格上的约束。 现在它根本没有更新,实际上它看起来和我在XIB中保持一致,这意味着它根本不会更新。 看来我正在使用的可重复使用的视图正确更新,但单元格当然不是。 有没有人遇到这个问题呢? 任何人有任何想法如何通过它? 我正在使用iOS 7.1模拟器。

UICollectionView的单元格在滚动后并不总是被刷新

我在Storyboard(iPad)中定义了一个包含UICollectionView的视图,在视图底部还有一个UIToolbar 。 在UICollectionView我添加了一个UICollectionViewCell (由一个iPadCellCollectionViewCell类实现),它包含另一个视图,即核心图( CPTGraphHostingView类)。 我有一个名为X的类实现了UICollectionViewDelegate和UICollectionViewDataSource 。 在类X中,我为我的视图(在ViewDidLoad )的每个单元格构buildCore-Plot Graph,并且具有以下代码将图链接到UICollectionViewCell的单元格 – (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { static NSString* cellId = @"ChartCollectionId"; iPadCellCollectionViewCell* cell = [self.theCollectionView dequeueReusableCellWithReuseIdentifier:cellId forIndexPath:indexPath]; MyChart* chart = [_charts objectAtIndex:indexPath.row]; cell.hostingView.hostedGraph = chart.barChart; return cell; } 它工作正常,所有我的graphics正确显示在屏幕上。 当用户滚动视图时会发生问题,然后一个或多个单元格变为“空白”。 我真的不明白为什么。 我find了一种解决方法,而不是在界面生成器中的UICollectionViewCell中添加CPTGraphHostingView ,我自己构build它,并且之前的代码变为: – (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { static NSString* cellId = […]

如何过滤UICollectionView并保持键盘?

我已经将UISearchBar添加到UICollectionView并在委托searchBar:textDidChange:筛选我的模型,并调用[collectionView reloadData] 。 reloadData (以及reloadSection等)想要从search栏的文本字段中取出firstResponder,从而解散键盘。 我正在尝试构build一个“实时更新”filter,因此在input每个字符后都会让键盘消失。 有任何想法吗?

如何删除两个UICollectionView列之间的余量

我有UICollectionView中,我想在单元格之间没有间距。 但是,尽pipe我竭尽全力,似乎无法消除这个空间, 码 – (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section { return 0; } – (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section { return 0; } – (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section { return UIEdgeInsetsMake(0, 0, 0, 0); } 额外的信息 单元格宽度是234 UICollectionView宽度是703

如何提高包含大量小图片的UCollectionView的性能?

在我的iOS应用程序中,我有UICollectionView ,显示大约1200个小(35×35点)的图像。 图像存储在应用程序包中。 我正确地重用UICollectionViewCell s,但仍然有性能问题,取决于我如何解决图像加载: 我的应用程序是应用程序扩展,那些内存有限(在这种情况下是40 MB)。 将所有1200张图片放到Assets目录中并使用UIImage(named: "imageName")加载它们导致内存崩溃 – 系统caching的图像填满了内存。 在某些时候,应用程序需要分配更大的内存部分,但由于caching的图像,这些部分不可用。 而不是触发内存警告和清理caching,操作系统只是杀了应用程序。 我改变了避免图像caching的方法。 我将图像放到我的项目中(不是用于保存目录),而是使用NSBundle.mainBundle().pathForResource("imageName", ofType: "png")来加载它们。 该应用程序不再由于内存错误崩溃,但加载单个图像需要更长的时间,即使在最新的iPhone上,快速滚动也是滞后的。 我完全控制图像,并可以将它们转换为.jpeg或优化它们(我已经尝试ImageOptim和其他一些选项,但没有成功)。 我该如何解决这两个性能问题? 编辑1: 我也尝试加载后台线程中的图像。 这是来自我的UICollectionViewCell子类的UICollectionViewCell : private func loadImageNamed(name: String) { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), { [weak self] () in let image = bundle.pathForResource(name, ofType: "png")?.CGImage if name == self?.displayedImageName { dispatch_async(dispatch_get_main_queue(), { if name == self?.displayedImageName { self?.contentView.layer.contents […]

以编程方式滚动到UICollectionView内的补充视图

我正在使用UICollectionView以分段显示照片。 每个部分都有一个补充视图作为标题,并通过方法提供: viewForSupplementaryElementOfKind 。 我有一个擦边器,允许用户从一节跳到一节。 现在我滚动到使用scrollToItemAtIndexPath:atScrollPosition:animated:的部分中的第一个项目,但我真正想要滚动collectionView,使该部分的标题是在屏幕的顶部,而不是第一个单元格。 我没有看到一个明显的方法来做到这一点。 你们有没有解决办法? 我想我可以滚动到该部分的第一个项目,然后补充高度加上项目和标题之间的偏移,如果它(有一个方法滚动contentView的坐标点)。 但是,如果有一个更简单的方法,我想知道。 谢谢。

自动调整UICollectionView高度以调整其内容大小

我有一个UICollectionView,一个button,在集合视图中创build一个新的单元格。 而且我想让UICollectionView根据它的内容大小调整它的大小(当有一个或两个单元,那么UICollectionView很短,如果有很多单元UICollectionView足够大)。 我知道如何获得内容大小: collectionView.collectionViewLayout.collectionViewContentSize 但我不知道在哪里使用这个值。 如果有人帮我弄清楚如何让UICollectionView自动调整它的高度,我将不胜感激。 UPD:我在GitHub上发布了一个描述问题的演示项目: https : //github.com/avokin/PostViewer