问题标签 [uicollectionreusableview]
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.
swift - UICollectionview scrollToItemAtIndexPath,在动画完成之前不加载可见单元格
我有一个UICollectionView
142 个单元格。7.5 随时可见。
我正在将一个单元格从indexPath
0 移动到 100。但我也想滚动到那个新位置。
下面的代码工作正常。但它会为移动和滚动设置动画,但随后会加载中央/移动单元格前后的单元格。我认为这是因为细胞是可重复使用的。但是有 142 个,我无法预加载所有这些
这不是最好的效果,我想预加载新位置周围的单元格,100之前的4indexPath
个和100之后的4个,然后看看移动和滚动的动画。你能帮忙吗?
ios - 即使在删除部分数据并重新加载 UICollectionView 后,部分标题仍然存在
删除部分中的最后一项后,目标是从“UICollectionView.
不幸的是,即使底层数据模型中没有部分,部分标题仍然存在”中删除整个部分,包括其标题。
刷新视图——通过从导航堆栈中弹出它并导航回视图——正确显示UICollectionView
删除了节标题。
在测试用例中,只有一个部分,因此UICollectionView
在删除最后一项后应该变为空白。
建议?
ios - 如何将 Header 设置为 UICollectionView
我想将默认部分标题设置为UICollectionView
。我使用了下面的代码,它崩溃了。
在-viewDidLoad
在-viewForSupplementaryElementOfKind
谢谢
ios - 未在自定义 UICollectionViewLayout 上调用 viewForSupplementaryElementOfKind
我创建了一个自定义UICollectionViewLayout
,并将其放在情节提要中的 Collection View Controller 中。我在显示项目/单元格时没有遇到太多问题。我的问题是viewForSupplementaryElementOfKind
没有被调用。我似乎无法确定为什么会这样。我试图回到默认布局,然后它确实调用了它,但我需要我的自定义UICollectionViewLayout
. 我已经离开NSLog
s 去检查并且viewForSupplementaryElementOfKind
没有被调用。
这是我的 MyCollectionViewController.m
现在这是我的 MyFlowLayout.m
正如您在 MyFlowLayout 中看到的那样,有些事情我已经尝试过,但仍然没有调用viewForSupplementaryElementOfKind
. 我尝试实施layoutAttributesForItemAtIndexPath
,因为我有layoutAttributesForSupplementaryViewOfKind
. 我还尝试使用您看到的固定数字(例如 75 和 320)来检查是否会生成标题。你看到的委托,它只是为了获得一个视图的高度。
因为我已经为标题提供了足够的空间以供查看,并且将 NSLogs 全部留下,但(UICollectionReusableView*)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
没有被调用。
以下是我查看并尝试过的一些内容:stackoverflow,但正如您从我包含的注释代码中看到的那样。它仍然没有工作。
谢谢您的帮助。
ios - 以编程方式将 UILabel 添加到集合单元,快速
我正在尝试在Collection Cell的subView中添加 UILabels 。但是当我滚动到另一个单元格并返回时,所有 UIlabels 都出现在两个单元格上,有些写在另一个单元格下。
我试过了collectionView.cellForItemAtIndexPath(indexPath) as? CollectionViewCell
,但是当我使用它时,没有显示 UIlabel(我尝试了断点,它没有在 if 语句之后)
我该如何解决?
谢谢!!!
编辑
我尝试以编程方式创建 UILabel。但通过这种方式,我使用了用 StoryBoard 设计的元素和以编程方式创建的元素。实际上我不能因为这个:
我以编程方式创建单元格的所有内容(collectionView 是使用情节提要创建的)并且它运行良好。
ios - 集合可重用视图未使用自定义布局显示
我在开始时创建了一个带有 CollectionReusableView 的 UICollectionView 并实现了所需的委托方法:
和
通过这样做,collectionView Header 正确显示。但是当我将 CollectionViewLayout 更改为自定义布局(不是流布局)时,检测到了问题,不再显示标题视图。调试时,我看到委托方法 viewForSupplementaryElementOfKind: atIndexPath: 没有被调用。
请注意,我使用RFQuiltLayout作为 UICollectionView 布局。
在此先感谢您的帮助
ios - UICollectionView 补充视图如何正确插入或删除
简短的问题:
有没有办法在performBatchUpdates:
块中添加和删除补充视图,如单元格和部分,类似于insertItemsAtIndexPaths:
deleteItemsAtIndexPaths:
甚至reloadItemsAtIndexPaths:
方法?
长解释:
我使用UICollectionView
with 部分。单元格像网格一样布置,每行最多可以有 6 个单元格。如果单元格的总数没有填满一个部分的所有行,我会添加额外的补充视图。额外的补充视图只是填补了空白。所以结果应该是每个部分都完全填充了所有可用的单元格,并且(可能的)剩余的空白点填充了补充视图。所以每行有 6 个视觉元素,一个单元格或一个补充视图。
为了实现这一点,我UICollectionViewFlowLayout
使用以下实现实现了一个基于自定义的布局prepareLayout:
:
如果从一开始所有数据都可用并且数据没有更改,则此方法非常有用。但是,如果在生命周期内添加和删除数据,它就会惨遭失败。performBatchUpdates:
在补充视图中插入和删除单元格。
应该发生什么:
对于与insertItemsAtIndexPaths:
补充视图同时插入的每个单元格,indexPath
都应删除。此外,对于使用新补充视图删除的每个单元格,deleteItemsAtIndexPaths:
应同时添加indexPath
。
问题:
调用我的prepareLayout:
布局并计算正确的layoutAttributes
. 但layoutAttributesForSupplementaryViewOfKind:atIndexPath:
被称为怪异indexPaths
。特别是从数组中删除layoutAttributesForSupplementaryViewOfKind:atIndexPath:
的 old 被调用!indexPaths
supplementaryViewAttributeList
例子:
在插入新单元格的情况下,prepareLayout:
正确删除layoutAttributes
,但layoutAttributesForSupplementaryViewOfKind:atIndexPath:
仍然会调用不再可用和删除的 indexPath!仅此而已。indexPath
对于所有其他补充观点,没有额外的要求。
为什么layoutAttributesForSupplementaryViewOfKind:atIndexPath:
要求indexPaths
不再可用?如何正确删除、插入或重新加载补充视图?我想念什么?
来源:
完整的来源可以在这里找到:
CollectionView 控制器:
https ://github.com/sarn/ARNClassicFilms/blob/master/classicFilms/classicFilms/view-controllers/ARNMovieOverviewController.m
(performBatchUpdates:
在类的最后一个方法中)
ios - 用户在我的应用中滚动 UIViewCollectionCells 列表时的奇怪行为(每个单元格中的数据随机更改)
在我正在使用的应用程序中UICollectionView
,我决定按照以下代码使用它:
因此,我有一个带有UILabel
and的单元格,UIImage
并且对于从 json 获取的每个对象,我对其进行解析并将用户的数据分配给该单元格。
当我加载窗口时,我会看到带有照片的用户名,但是当我开始滚动浏览收藏视图时,用户的照片会发生变化,并且用户得到的照片与他们应该拥有的不同。
我读过它可能与单元重用有关(到目前为止我对此一无所知),我只是假设它应该加载一次(当用户打开此面板时)然后保持原样。但是,每次用户滚动该列表时,似乎都会“获取”此数据。
那么我如何才能准确地解决我的问题并确保每次用户滚动列表时 - 数据都是正确的?
在这里可能有用的另一件事 -getDataFromUrl
从 url 获取照片的方法: