问题标签 [uicollectionviewlayout]

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 投票
1 回答
3516 浏览

ios6 - 何时以及如何调用 collectionView:viewForSupplementaryElementOfKind:atIndexPath:?

我正在尝试使用 UICollectionView 和自定义布局来实现类似于本机日历应用程序的时间线视图。我是新手。

这就是我的问题的来源。

我正在使用装饰视图来实现那些背景网格线,并尝试使用补充视图来制作时间标签(靠近网格线),并将使用 Cell 来制作事件,但还没有那么远。

但是在做这些事件之前,我发现当我运行它时,所有的补充视图都不起作用,不管我有没有单元格。我发现我的collectionView:viewForSupplementaryElementOfKind:atIndexPath: method is not called

所以我想知道如何以及何时调用此方法?什么可能导致我的情况没有被调用?

其实,做那些带有补充视图的时间标签好不好?我不确定,因为即使没有事件(部分中没有单元格/项目),我也确实需要它们可见。

这是我的代码:

视图控制器

自定义布局

我尽量不在这里发布所有代码,因为那会很多,但是如果您需要了解其他人,请告诉我。

任何提示表示赞赏!

松树

0 投票
3 回答
256 浏览

ios - UICollectionView 分页在 2^24 像素后中断

设置

我有一个UICollectionView允许用户翻页的图片,12页。应用程序中应该有超过 200,000 张图片。我不希望用户滚动到第 20,000 页,所以有跳转到某个页面的功能。

问题

在横向中,分页在第 16,385 页发生故障。集合不再适应页面边界。如果您在第 16,384 页之前返回,您可以让它重新开始工作,但超过 16,385 的页面无法正常工作。

scrollViewDidEndDecelerating:当错误出现时,我的代表也停止收到消息。

假设

横向的第 16,385 页恰好从像素 16,777,216 开始,恰好是 2^24。我认为有一些东西UICollectionView超过UIScrollView了 2^24。

这只是一个无证的限制吗?我运气不好?

这个例子

我上传了一个演示问题的项目这是相关的视图控制器。如果你摇动你的 iPad 或模拟器,你会被带到第 16,384 页,在错误出现之前的一页。

蛇鲨

如果您认为用户不需要能够转到第 20,000 页,那就太好了。我认为这与问题无关。

0 投票
1 回答
4634 浏览

ios - UICollectionView:设置新布局和目标内容偏移

我有一个UICollectionView和两个子类UICollectionViewFlowLayout。当一个单元格被选中时,我调用setCollectionViewLayout:animated:在布局之间切换。过渡完成后,选定的单元格居中,这很好。

可以在不实际选择单元格的情况下完成相同的居中行为吗?我试图调用setContentOffset:animated:不同的方法,但没有成功。或者,我可以contentOffset为要显示的布局指定一个自定义项吗?

更清楚地说,我想在不修改单元格selected属性的情况下拥有这样的东西:在此处输入图像描述

编辑#1

这是我已经拥有的:

看起来不错:https ://www.dropbox.com/s/9u6cnwwdbe9vss0/17249646-0.mov


但如果我跳过selectItemAtIndexPath

这不是很好(一种挥舞动画):https ://www.dropbox.com/s/s3u2eqq16tmex1v/17249646-1.mov

0 投票
1 回答
1994 浏览

objective-c - UICollectionViewFlowLayout 的 layoutAttributesForItemAtIndexPath 在“过早”调用时返回 nil

我的设置:带有流式布局的标准 UICollectionView;数据源设置为我的控制器。布局在 xib 文件中像往常一样配置。当我尝试在控制器的 viewDidLoad 方法中通过 layoutAttributesForItemAtIndexPath: 访问单元格的布局属性时,如下所示:

输出是

即使布局具有为我提供正确布局属性所需的所有信息。它在 viewWillAppear: 中仍然不起作用,但它“神奇地”开始在 viewDidAppear 中工作:

我发现了一种非常奇怪的方法来让它工作;我只是在请求布局属性之前访问 collectionViewContentSize:

正如预期的那样,输出一直是:

这里发生了什么?我假设访问内容大小会触发布局中的某些内容,但是有谁知道是否有适当的方法来做到这一点?或者这只是一个恼人的错误?

0 投票
1 回答
744 浏览

ios - UICollectionViewFlowLayout with items of different size

I have an UICollectionView where the items can modify at run time it's height. The problem is that when an item is higher than another, the item are surrounded by a lot o blank space.

enter image description here

I'm looking for a property that create this:

enter image description here

and I want use UICollectionView not github example or third part implementation. Thanks.

0 投票
0 回答
243 浏览

ios - iOS - UICollectionView - 如何让父视图无缝滚动到子 UICollectionView

我想知道将大约 1-2 页内容放在自定义无限网格 UICollectionView 上方的最佳方法是什么,并让它们无缝滚动在一起?

此时我正在考虑将网格上方的所有内容都作为 collectionView 的补充视图。这是最好的方法吗?在我看来,将那些根本不属于集合的内容放在 collectionView 之外会更好。

也许有更好的方法在父 scrollView 和子 collectionView 之间共享滚动事件?

0 投票
2 回答
1839 浏览

objective-c - UICollectionView 在 performBatchUpdates 上锁定主线程约 10 秒

我有一个包含 300 个单元格的集合视图,由 NSFetchedResultsController 驱动。每隔一段时间,所有的对象都会更新,所以我会收到委托消息告诉我,我让集合视图处理更新,就像处理表格视图一样。不幸的是,每次发生这种情况时它都会将主线程锁定几秒钟......我不知道为什么。这是我的代码:

这里发生了什么?在我的应用程序的实际执行中,一次更新所有 300 个对象不会经常发生,但足以让我担心它。我正在使用库存 UICollectionViewFlowLayout - 我需要做一些更自定义的事情吗?

0 投票
1 回答
14340 浏览

iphone - 具有自定义布局的 UICollectionView - 如何/在何处以编程方式添加补充视图?

我正在处理Circle Layout的示例,使用 UICollectionView 和故事板中定义的自定义布局类。

是否有某种教程或逐步说明如何将补充视图添加到使用自定义布局的集合视图中?

我一直在查看Introducing Collection Views示例,但无法真正理解该项目中如何定义补充视图。似乎它们是使用流布局在情节提要中注册的,但我不知道该项目中的后续布局更改如何移动补充视图。

0 投票
3 回答
11223 浏览

ios - 流布局中的 UICollectionView 单元格边框

我正在使用 UICollectionView 来布置一堆按标题的第一个字母划分的单元格。每个单元格周围都应该有一个非常细的边框,并且节标题应该在上面和下面都有边框。这是我目前的原型:

由大小相同的大单元格组成的网格,四个一排,各部分之间带有细长的浅灰色标题。 窄灰色边框显示单元格和分隔符的边缘。

我通过以下规则实现当前外观:

  1. 描边每个单元格的右边缘和下边缘。
  2. 描边每个部分标题的底部边缘。

这和我想要的非常接近,但是有两个缺陷:

  1. 如果部分标题之前的行未满,则标题顶部的边框会在屏幕右边缘附近停止。
  2. 在此屏幕截图中不可见,但如果一行已满,则该行中最后一个单元格的右边框仍被绘制,这在屏幕边缘看起来有点奇怪。

解决此问题的最佳方法是以某种方式告诉每个单元格是在一个部分的最后一行还是在一行中的最后一个单元格;然后单元格将关闭有问题的边框,部分标题将绘制顶部边框和底部边框,并且一切都将是笨拙的。不过,我不知道如何实现这一目标。

关于如何管理它的任何想法,或者其他方式来获得我想要的外观?我目前正在使用 UICollectionViewFlowLayout。

0 投票
3 回答
10315 浏览

ios - UICollectionView 页眉和页脚视图

我正在使用 UICollectionView 并且需要一个全局页眉和页脚以及部分标题。全局页眉和页脚都应该与其余内容一起滚动。基本上它们应该与 UITableView 的 tableHeaderView 和 tableFooterView 属性完全一样。

图表

据我了解,补充视图在特定部分的上方或下方,装饰视图不起作用。我的全局页眉和页脚应该有交互元素。

在尝试了几个小时后,我真的把头发拉出来了。我发现了一些令人讨厌的方法,例如使用 contentInsets 进行修改并将子视图添加到 collectionview 中。我真正想要的是一种干净的方式来做到这一点。

我期待着任何建议!