问题标签 [uicollectionview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
4437 浏览

iphone - UICollectionView 制作EPG

WWDC 的一些人告诉我,UICollectionView 非常适合在 iOS 中创建 EPG(电子节目指南)样式视图,如下图所示。但是,我找不到任何接近这个的样本......有人知道吗?

在此处输入图像描述

0 投票
3 回答
6792 浏览

ios - 如何将 UISearchDisplayController 与 UICollectionViewController 一起使用?

如果您将 UISearchDisplayController 与 UITableViewController 一起使用,则当用户点击搜索栏时,它会动画化以替换导航栏。

在 UICollectionViewController 顶部使用 UISearchBar 时,我希望获得相同的效果。有任何想法吗?

0 投票
1 回答
6363 浏览

nsfetchedresultscontroller - UICollection 查看 & performBatchUpdate

我试图构建一个可以使用 UICollectionviewcontroller 和 NSFetchresultcontroller 的应用程序,我找到了以下链接“https://github.com/AshFurrow/UICollectionView-NSFetchedResultsController/blob/master/AFMasterViewController.m

在这里你可以找到代码

我有以下错误

_sectionsChange 的 NS 日志给我以下输出

我想知道如何解决这个问题,所以任何帮助将不胜感激

谢谢

0 投票
1 回答
4420 浏览

iphone - 在 UICollectionView/UICollectionViewLayout 旋转或边界更改上禁用交叉淡入淡出的最佳方法是什么?

我有一个子类,UICollectionViewLayout它把细胞放在一个圆圈里。布局返回YES调用shouldInvalidateLayoutForBoundsChange:。旋转时,初始位置的单元格淡出,最终位置的单元格淡入。

通过将以下代码添加到我的布局中,我可以禁用淡入淡出,并且项目圈似乎只是随着方向的变化而旋转:

为什么这些方法会在边界更改时被调用,因为文档似乎没有建议它们这样做?文档似乎表明它们被称为与从集合视图中插入和删除项目有关。

有没有更好的方法来禁用旋转期间的交叉淡入淡出?

笔记:

  • initialLayoutAttributesForAppearingItemAtIndexPath:文档指出,默认情况下该方法返回但nil调用super返回的非零值。
  • UICollectionView我在方法 上设置了符号断点deleteItemsAtIndexPaths:moveItemAtIndexPath:toIndexPath:并且 insertItemsAtIndexPaths:在旋转过程中没有一个被击中。
0 投票
2 回答
28561 浏览

objective-c - 在 iOS 中设置 UICollectionView

我一直在寻找设置UICollectionViewiOS 应用程序的方法。谷歌只出现了一些关于它是什么的帖子,而不是它是如何工作的。当然,Apple 文档很有帮助,但没有提供我希望能够设置UICollectionView.

如何设置一个UICollectionView

0 投票
3 回答
78599 浏览

objective-c - UICollectionView 使用 performBatchUpdates 执行更新

我有一个UICollectionView我正在尝试动态/使用动画将项目插入其中。所以我有一些功能可以异步下载图像并希望批量插入项目。

获得数据后,我想执行以下操作:

现在代替***,我应该传递一个 数组NSIndexPaths,它应该指向要插入的新项目的位置。我很困惑,因为在提供位置后,我如何提供应该在该位置显示的实际图像?

谢谢


更新:

resultsSize包含数据源数组的大小,self.results在从 处的数据添加新数据之前newImages

0 投票
4 回答
17143 浏览

objective-c - UICollectionView 没有出现

我正在尝试在扩展的视图控制器中以UICollectionView 编程UIViewController方式进行设置。出于某种原因,我的收藏视图根本没有出现。下面是我所拥有的。

为什么不出现?我将它连接到委托和数据源,并将其作为子视图添加到self.view. 我的代码中缺少什么?

在我的.h文件中:

在我的.m文件中:

0 投票
5 回答
77252 浏览

objective-c - UICollectionView cellForItemAtIndexPath 未注册单元格

我正在尝试使用UICollectionViewCell,因为我想要显示的只是一张图片。我可以使用'属性将图像添加到单元格中UIColor colorWithImage:UICollectionViewCellcontentView

在我的loadView方法中,我正在注册单元格,如下所示: [self.collectionView registerClass:[ImageCell class] forCellWithReuseIdentifier:@"MyCell"];

下面是我的cellForItemAtIndexPath方法:

当我运行它时,一旦它到达出队行,它就会崩溃并出现以下错误:

我厌倦了设置自定义单元格,并将其用作类,我得到了同样的错误。我的自定义单元格是 UICollectionViewCell 的子类,除了默认的initWithFrame. 那是因为我只想更改视图的背景颜色。我不确定问题是什么,但有人可以看看我的代码并帮助我吗?我一直试图弄清楚这一点,但完全没有运气。

0 投票
7 回答
8116 浏览

ios - UICollectionView setLayout:animated: 不保留 zIndex

我注意到,当调用setLayout:animatedaUICollectionView在两个布局之间切换时,当前可见的单元格不符合zIndex它的布局属性已在layoutAttributesForItemAtIndexPath:.

例如,如果我有一个UICollectionViewwith UICollectionViewFlowLayout,将其设置minimumLineSpacing为负数,以便单元格重叠,然后zIndex在每个单元格上设置 a 高于前一个单元格的值,然后看起来好像单元格是从下往上堆叠的。

但是,如果我将布局设置为另一个布局,然后返回到该原始布局,则会中断。就好像当前可见的单元格不听 zIndex 并放置在其他单元格的顶部。如果我将单元格滚动到屏幕外,然后返回到正确的位置。

0 投票
1 回答
11322 浏览

objective-c - insertItemsAtIndexPaths 更新错误

在 UICollectionView 中,我正在尝试使用performBatchUpdates:completion对我的网格视图执行更新。我的数据源数组是self.results.

这是我的代码:

解释我有什么/我在做什么:

当初始插入到集合视图完成时,此代码运行良好。但是,当我将更多数据添加/插入到我的集合视图中(通过更新self.results和调用它)时,会出现以下错误:

*由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'无效更新:第0节中的项目数无效。更新后现有节中包含的项目数(8)必须等于其中包含的项目数更新前的那个部分 (4),加上或减去从该部分插入或删除的项目数(插入 32,删除 0),加上或减去移入或移出该部分的项目数(0 移入,0搬出)。'

我知道这意味着数据源没有正确更新。但是,在查询我的self.results数组时,我看到了新的数据计数。我在第一行使用addObjectsFromArray. 我还将旧结果大小存储在resultsSize. 我使用该变量将新添加的索引路径添加到arrayWithIndexPaths.

现在在添加/插入项目时,我尝试了以下 for 循环:

for (id obj in self.results)这就是我现在正在使用的。它最初可以工作,但会进一步插入崩溃。

for (UIImage *image in newData)最初也可以工作,但进一步插入崩溃。

从函数的名称来看,我相信它insertItemsAtIndexPaths会在没有循环的情况下将所有项目插入这些索引路径。但是,如果没有循环,应用程序在最初尝试填充数据时会崩溃。

我还尝试循环resultsSize + 1直到新self.results计数(包含新数据),并且在初始更新时也会崩溃。

关于我做错了什么的任何建议?

谢谢,