问题标签 [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 投票
2 回答
1297 浏览

ios - uicollectionview 加载奇怪

我使用自定义集合 cell.set 创建了一个集合视图,其中 flowlayout 为

我将它设置为水平但仍然有一个单元格在图中att mmp放错了位置,如果我们滚动并加载它,它将回到正确的位置。谁能建议这有什么问题?

收藏

0 投票
2 回答
6111 浏览

ios - 带有collectionview子视图的ios uiviewcontroller不显示单元格

我有一个带有子视图的 uiviewcontroller,它是一个 uicollection 视图。我的视图控制器实现了所有的 collectionview 委托。出于某种原因,某些单元格是黑色的(当我滚动它们时,它们似乎是随机的)我的代码是:

附加打印屏幕

向下滚动一点

并打印创建的单元格的所有框架(对于连续 4 个单元格来说似乎是合理的):

0 投票
1 回答
577 浏览

uicollectionview - 给 UICollectionViewCell 一个绝对位置

是否可以控制 a 的布局UICollectionViewCell以使其具有绝对 x 或 y 位置?

我想UICollectionView在表格的每一行中使用 , 来创建一个简单的 5 天日历。目前我只是在单元格中定位一组具有绝对 x 值的视图

0 投票
1 回答
257 浏览

ios - UICollectionViewFlowLayout 的行和列

给定一个UICollectionView带有流的布局,计算集合视图的列数(垂直方向)或行数(水平方向)的最简单方法是什么?

0 投票
4 回答
14592 浏览

ios - 重新排序 UICollectionView 的单元格

考虑一个UICollectionView带有流式布局和水平方向的布局。默认情况下,单元格按从上到下、从左到右的顺序排列。像这样:

在我的例子中,collection view 是分页的,并且它的设计使得特定数量的单元格适合每个页面。因此,更自然的排序将是:

除了实现我自己的自定义布局之外,最简单的实现方式是什么?特别是,我不想放弃任何免费提供的功能UICollectionViewFlowLayout(例如插入/删除动画)。

或者一般来说,您如何f(n)在流布局上实现重新排序功能?例如,这同样适用于从右到左的排序。

到目前为止我的方法

我的第一种方法是子类化UICollectionViewFlowLayout和覆盖layoutAttributesForItemAtIndexPath:

reorderedIndexPathOfIndexPath:在哪里f(n)。通过调用super,我不必手动计算每个元素的布局。

此外,我必须覆盖layoutAttributesForElementsInRect:,这是布局用来选择要显示哪些元素的方法。

在这里,我只是尝试每个元素,如果它在给定的范围内rect,我将其返回。

如果这种方法是要走的路,我有以下更具体的问题:

  • 有什么办法可以简化layoutAttributesForElementsInRect:覆盖,或者提高效率?
  • 我错过了什么吗?至少交换不同页面的单元格会产生奇怪的结果。我怀疑它与initialLayoutAttributesForAppearingItemAtIndexPath:and相关finalLayoutAttributesForDisappearingItemAtIndexPath:,但我无法准确指出问题所在。
  • 就我而言,f(n)取决于每页的列数和行数。除了自己硬编码之外,有没有什么方法可以从中提取这些信息UICollectionViewFlowLayout?我想过用集合视图的边界进行查询layoutAttributesForElementsInRect:,并从那里推导出行和列,但这也感觉效率低下。
0 投票
2 回答
865 浏览

ios - UICollectionView 布局不一致,UICollectionViewFlowLayout

我无法以一致的方式在 UICollectionView 中显示单元格。单元格的初始显示是正确的,但是每次用户滚动过去然后返回到一组单元格时,显示都是不正确的。行应该只包含 2 或 1 个单元格。2 个单元格各占显示宽度的一半,1 个单元格占全宽。

以下是收集数据的示例。

下面的图片都展示了集合视图的同一部分。

初始显示 第一次滚动过去 第二次滚动过去

0 投票
0 回答
1122 浏览

ios - UICollectionView 自定义流布局

我在我的项目中使用 UICollectionView 自定义流布局。当我们将 UICollectionViewFlowLayout 设置为我们的自定义集合视图布局时,iOS 默认认为滚动方向是垂直的,当我们将单元格大小增加到超过一定限制时,它会自行在左侧的单元格中放置一个插图(这可以' t 重置为零)。现在,通过代码我将滚动方向设置为水平。当我运行应用程序时,左插图位于顶部。如果有人复制我的问题并找到合适的解决方案,我将不胜感激。

0 投票
1 回答
4722 浏览

ios6 - 使用 UICollectionView 创建书架

我将在我的一个项目中创建一个书架。基本要求如下:

  • 类似于 iBooks 书架
  • 很好地支持两个方向
  • 很好地支持各种iOS设备(不同的分辨率)
  • 支持删除和插入项目
  • 支持通过长按手势重新排序项目
  • 下拉第一行时显示隐藏的徽标

UICollectionView 是我想到的第一个选项。它很容易支持网格单元。所以我搜索了一下,发现了一些非常有用的教程:

Bryan Hansen 的 UICollectionView 自定义布局教程

Mark Pospesel 的如何将装饰视图添加到 UICollectionView

LXReorderableCollectionViewFlowLayout

结果如下:(请忽略颜色不一致问题,因为我选择的图形还不完美。)

在此处输入图像描述

我做了什么:

  1. 通过创建一个LXReorderableCollectionViewFlowLayout继承自 UICollectionFlowLayout 的类(用于重新排序)来创建自定义布局
  2. 添加了用于显示徽标的装饰视图
  3. 添加了用于显示书架的装饰视图

但是我遇到了几个问题:

1.如果项目可以在一个屏幕上显示,我根本无法滚动

然后我添加了以下代码,以使内容大小更大

然后我现在可以滚动了。在这里,我拉下第一行:

在此处输入图像描述

您可以看到徽标的装饰视图正在工作。

2. 但是我拉到最后一行的时候遇到了第二组问题:

在此处输入图像描述

可以看到绿色框部分没有添加装饰视图。

3、书架装饰视图的背景越来越暗。(请在此处参考相同的问题

4. 重新排序时书架栏有时会移动

在此处输入图像描述

我在这里列出了一些重要的代码:

如果您有足够的耐心阅读这篇文章并提供任何建议或建议,我将不胜感激。如果我能解决所有问题,我会发布完整的源代码。先感谢您。

0 投票
2 回答
6488 浏览

ios - 任何滚动都会调用 UICollectionViewLayout prepareLayout

在实现自定义UICollectionViewLayout子类时发现了这种奇怪的行为。我设置了除collectionViewContentSize. 所有的细胞都出现在我预期的地方,但是contentView太长了。看起来大约是应该的两倍。

我实现了下面的方法来获得正确的contentSize. 虽然,它现在是预期值,prepareLayout每次视图滚动一个像素时都会调用它。这意味着如果我从 0,0 滑动到 0,500,prepareLayout就会被调用 500 次!

我有什么collectionViewContentSize可能导致这种情况?

0 投票
5 回答
12206 浏览

iphone - UICollectionView 单元格重叠

我有一个水平的 UICollectionView。我想让单元格相互重叠一定数量的 60 像素,以便第二个单元格与第一个单元格重叠 60 个像素,第三个单元格与第二个单元格重叠相同的数量,依此类推。

我尝试对 UICollectionViewFlowLayout 进行子类化。但我无法将 UICollectionviewCell 放在另一个之上。