问题标签 [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.
ios - uicollectionview 加载奇怪
我使用自定义集合 cell.set 创建了一个集合视图,其中 flowlayout 为
我将它设置为水平但仍然有一个单元格在图中att mmp
放错了位置,如果我们滚动并加载它,它将回到正确的位置。谁能建议这有什么问题?
ios - 带有collectionview子视图的ios uiviewcontroller不显示单元格
我有一个带有子视图的 uiviewcontroller,它是一个 uicollection 视图。我的视图控制器实现了所有的 collectionview 委托。出于某种原因,某些单元格是黑色的(当我滚动它们时,它们似乎是随机的)我的代码是:
uicollectionview - 给 UICollectionViewCell 一个绝对位置
是否可以控制 a 的布局UICollectionViewCell
以使其具有绝对 x 或 y 位置?
我想UICollectionView
在表格的每一行中使用 , 来创建一个简单的 5 天日历。目前我只是在单元格中定位一组具有绝对 x 值的视图
ios - UICollectionViewFlowLayout 的行和列
给定一个UICollectionView
带有流的布局,计算集合视图的列数(垂直方向)或行数(水平方向)的最简单方法是什么?
ios - 重新排序 UICollectionView 的单元格
考虑一个UICollectionView
带有流式布局和水平方向的布局。默认情况下,单元格按从上到下、从左到右的顺序排列。像这样:
在我的例子中,collection view 是分页的,并且它的设计使得特定数量的单元格适合每个页面。因此,更自然的排序将是:
除了实现我自己的自定义布局之外,最简单的实现方式是什么?特别是,我不想放弃任何免费提供的功能UICollectionViewFlowLayout
(例如插入/删除动画)。
或者一般来说,您如何f(n)
在流布局上实现重新排序功能?例如,这同样适用于从右到左的排序。
到目前为止我的方法
我的第一种方法是子类化UICollectionViewFlowLayout
和覆盖layoutAttributesForItemAtIndexPath:
:
reorderedIndexPathOfIndexPath:
在哪里f(n)
。通过调用super
,我不必手动计算每个元素的布局。
此外,我必须覆盖layoutAttributesForElementsInRect:
,这是布局用来选择要显示哪些元素的方法。
在这里,我只是尝试每个元素,如果它在给定的范围内rect
,我将其返回。
如果这种方法是要走的路,我有以下更具体的问题:
- 有什么办法可以简化
layoutAttributesForElementsInRect:
覆盖,或者提高效率? - 我错过了什么吗?至少交换不同页面的单元格会产生奇怪的结果。我怀疑它与
initialLayoutAttributesForAppearingItemAtIndexPath:
and相关finalLayoutAttributesForDisappearingItemAtIndexPath:
,但我无法准确指出问题所在。 - 就我而言,
f(n)
取决于每页的列数和行数。除了自己硬编码之外,有没有什么方法可以从中提取这些信息UICollectionViewFlowLayout
?我想过用集合视图的边界进行查询layoutAttributesForElementsInRect:
,并从那里推导出行和列,但这也感觉效率低下。
ios - UICollectionView 布局不一致,UICollectionViewFlowLayout
我无法以一致的方式在 UICollectionView 中显示单元格。单元格的初始显示是正确的,但是每次用户滚动过去然后返回到一组单元格时,显示都是不正确的。行应该只包含 2 或 1 个单元格。2 个单元格各占显示宽度的一半,1 个单元格占全宽。
以下是收集数据的示例。
下面的图片都展示了集合视图的同一部分。
ios - UICollectionView 自定义流布局
我在我的项目中使用 UICollectionView 自定义流布局。当我们将 UICollectionViewFlowLayout 设置为我们的自定义集合视图布局时,iOS 默认认为滚动方向是垂直的,当我们将单元格大小增加到超过一定限制时,它会自行在左侧的单元格中放置一个插图(这可以' t 重置为零)。现在,通过代码我将滚动方向设置为水平。当我运行应用程序时,左插图位于顶部。如果有人复制我的问题并找到合适的解决方案,我将不胜感激。
ios6 - 使用 UICollectionView 创建书架
我将在我的一个项目中创建一个书架。基本要求如下:
- 类似于 iBooks 书架
- 很好地支持两个方向
- 很好地支持各种iOS设备(不同的分辨率)
- 支持删除和插入项目
- 支持通过长按手势重新排序项目
- 下拉第一行时显示隐藏的徽标
UICollectionView 是我想到的第一个选项。它很容易支持网格单元。所以我搜索了一下,发现了一些非常有用的教程:
Bryan Hansen 的 UICollectionView 自定义布局教程
Mark Pospesel 的如何将装饰视图添加到 UICollectionView
LXReorderableCollectionViewFlowLayout
结果如下:(请忽略颜色不一致问题,因为我选择的图形还不完美。)
我做了什么:
- 通过创建一个
LXReorderableCollectionViewFlowLayout
继承自 UICollectionFlowLayout 的类(用于重新排序)来创建自定义布局 - 添加了用于显示徽标的装饰视图
- 添加了用于显示书架的装饰视图
但是我遇到了几个问题:
1.如果项目可以在一个屏幕上显示,我根本无法滚动
然后我添加了以下代码,以使内容大小更大
然后我现在可以滚动了。在这里,我拉下第一行:
您可以看到徽标的装饰视图正在工作。
2. 但是我拉到最后一行的时候遇到了第二组问题:
可以看到绿色框部分没有添加装饰视图。
3、书架装饰视图的背景越来越暗。(请在此处参考相同的问题
4. 重新排序时书架栏有时会移动
我在这里列出了一些重要的代码:
如果您有足够的耐心阅读这篇文章并提供任何建议或建议,我将不胜感激。如果我能解决所有问题,我会发布完整的源代码。先感谢您。
ios - 任何滚动都会调用 UICollectionViewLayout prepareLayout
在实现自定义UICollectionViewLayout
子类时发现了这种奇怪的行为。我设置了除collectionViewContentSize
. 所有的细胞都出现在我预期的地方,但是contentView
太长了。看起来大约是应该的两倍。
我实现了下面的方法来获得正确的contentSize
. 虽然,它现在是预期值,prepareLayout
每次视图滚动一个像素时都会调用它。这意味着如果我从 0,0 滑动到 0,500,prepareLayout
就会被调用 500 次!
我有什么collectionViewContentSize
可能导致这种情况?
iphone - UICollectionView 单元格重叠
我有一个水平的 UICollectionView。我想让单元格相互重叠一定数量的 60 像素,以便第二个单元格与第一个单元格重叠 60 个像素,第三个单元格与第二个单元格重叠相同的数量,依此类推。
我尝试对 UICollectionViewFlowLayout 进行子类化。但我无法将 UICollectionviewCell 放在另一个之上。