问题标签 [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 - 奇怪的 UICollectionViewFlowLayout 覆盖行为
我正在尝试覆盖UICollectionViewFlowLayout
,但我意识到一些奇怪的事情。在这里你可以看到一个小代码片段:
当一个项目被添加到 时UICollectionView
,reloadData
被调用。ReloadData
总是重新初始化布局,因此它会prepareLayout
一次又一次地调用,并且永远不会调用prepareForCollectionViewUpdates
。
你知道如何处理它吗?
ios - UICollectionView 双向滚动
我用UICollectionView
垂直卷轴做了一个。
单元格的宽度大于屏幕宽度,所以我创建了一个customFlowLayout
基于UICollectionViewFlow
布局返回正确计算的内容大小。
但是,这不起作用。当单元格的宽度小于屏幕宽度时,它可以工作。这是否意味着我们在垂直滚动中的宽度不能超过屏幕宽度?
水平滚动也是一样,但是高度CollectionView
限制为屏幕高度。
有什么办法让它工作吗?
ios6 - UICollectionViewLayout 示例
谁能指出我如何使用 UICollectionViewLayout 创建类似于 Pinterest 列布局的界面的正确方向?
我尝试在网上搜索,但似乎还没有很多例子。
uiviewcontroller - UICollectionView 单元格自动旋转
我有一个 UICollectionView,它具有水平滚动的默认 Flow 布局。当我旋转设备时,单元格相互重叠。
当我旋转回初始启动方向时,布局会自行修复。
我试过在 didRotate~ 方法中调用 invalidateLayout 和 reloadData ,都没有影响。
有任何想法吗?
干杯!
ios - UICollectionView 的每个部分的独立滚动?
是否可以UICollectionView
用来构建每个部分都可以独立滚动的布局?例如,假设有 20 行图像,其中每一行可以独立水平滚动以在屏幕外显示更多图像(在此过程中无需滚动其他行);并且整个视图可以垂直滚动以显示更多行。
我相信这样的事情可以通过 UIScrollView 中的几个 UICollectionView 实例来实现;但是,利用 UICollectionView 插入/移动部分会很棒。
我怀疑这不切实际,因为 UICollectionView 是 UIScrollView 的子类;但也许这可以通过自定义 UICollectionViewLayout 来完成?
ios - 设置 UICollectionViewLayout 以匹配列拆分 UITableView 类似结果
我是 iOS 6 中 UICollectionView 的新手,到目前为止,它看起来很像 UITableView 但是我正在尝试找出一种方法来使 UISCrollview 的 pagingEnabled 感觉与我显示为的一组单元格一起工作如果它们是 UITableView (实际上它们不是)
这就是我想要实现的目标
我的问题是如何以这种形式布局单元格,我知道我必须继承 UICollectionViewLayout 但完全不明白如何实现这一点,以及如何同时启用分页,如果它必须由 UICollectionViewLayout 启用或应该我自己这样做。
请指教。
ios - 多个装饰视图添加到 UICollectionView
我正在创建一个包含子类的基本集合视图布局UICollectionViewFlowLayout
。但是,我注意到似乎有几个装饰视图堆叠在一起。
每当用户在最后一部分中选择一个项目时,我都会使用下面的代码添加一个新部分。似乎每当我执行此代码时,都会将装饰视图的一个附加副本添加到每个已经存在的部分。
我通过提供我的装饰视图并看到它们堆叠来alpha
证实了这一点。0.2f
我还执行了集合视图层次结构的转储,并看到了 10 个AFDecorationView
我应该只看到 4 个的实例:
我曾尝试查看另一个自定义布局示例,但它们似乎也实例化了很多装饰视图实例。这可能是一个错误UICollecionView
吗?还是由我们决定layoutAttributesForElementsInRect:
每个部分只添加一次装饰视图布局属性?
自定义布局的装饰相关部分如下所示。
每个部分我只想要一个装饰视图,所以我将装饰视图添加到第一部分。
objective-c - UICollectionView performBatchUpdates:为所有部分设置动画
我正在编写一个自定义UICollectionViewFlowLayout
,我注意到了这一点initialLayoutAttributesForAppearingItemAtIndexPath:
,当我在集合视图上initialLayoutAttributesForAppearingDecorationElementOfKind:atIndexPath:
调用时,所有部分都会调用它。performBatchUpdates:completion:
结果是所有部分都应用了动画,而不仅仅是新添加的部分。
到目前为止,我尝试的是删除调用来performBatchUpdates:completion:
代替简单的更新,但是无论如何,已经存在的部分(所有部分)都是动画的。我想出了一个检查解决方案,以确保我只更改了最后一部分的布局属性,但感觉很hacky。
这是只为某些部分设置动画的正确方法吗?
ios - 尝试将节页脚添加到 UICollectionView 时崩溃
我正在尝试将节页脚添加到 UICollectionView 并以我不理解的方式失败。
我正在像这样设置主单元格:
xib 是 UICollectionViewCell 的子类,只包含一个 UILabel。这一切都很好。
现在我想添加节页脚,所以我添加了这个(与上面的代码交错,所以 setCollectionViewLayout 调用仍然是序列中的最后一个):
这次的 xib 是 UICollectionReusableView 的子类,并包含一个视图(它的意思是部分之间的水平白线)。视图的大小为 130 x 2。
在我添加 footerReferenceSize 行的那一刻,应用程序在 setCollectionViewLayoutLine 上崩溃
由于未捕获的异常“NSRangeException”而终止应用程序,原因:“-[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array”
我不知道这可能是哪个数组,Google 也没有提供任何帮助。有任何想法吗?我一定是忘记连接什么东西了,但我找不到。
ios - UICollectionViewFlowLayout 与子类化 UICollectionViewLayout
我知道记录在案的建议是使用 UICollectionView Flow Layout 如果您正在做任何“像网格或基于行的中断布局”。但是,我不确定这是否适用于我的情况。
我想要一个网格,但不想要一个换行的布局。物品应该在水平和垂直方向上无限地布置,而无需堆叠。本质上,如果内容超出框架,则可以水平或垂直滚动的巨型棋盘。
要继承 UICollectionView流布局,我必须:
- 覆盖
prepareLayout
以停止布局包装项目。这似乎需要做很多工作。 - 覆盖
collectionViewContentSize
。
Apple 表示他们在制作 UICollectionView流布局方面做了“很多艰苦的工作”,所以如果可以的话,我应该利用它。但是如果我必须重写prepareLayout
以关闭换行,我怀疑我正在丢弃他们的大部分工作。在他们剩下的工作中,我可能不会使用其中的大部分(例如,minimumLineSpacingForSectionAtIndex
)。
因为我想要的布局是如此简单,我怀疑我应该继承 UICollectionViewLayout ,因为:
- 我将有一个更简单、更清晰的实现,所有内容都在一个布局类中,而不是在子类和委托之间传播。
- 我认为这不会比继承 UICollectionView Flow Layout 更难,因为在这两种情况下我都必须重写
prepareLayout
,我怀疑这就是所有艰苦工作的所在。 - 与尝试在 UICollectionView Flow Layout 子类之上添加另一个 kludge 相比,我将处于更好的位置以自定义方式调整其他 UICollectionViewLayoutAttributes 。
我的结论正确吗?