问题标签 [uicollectionviewflowlayout]

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 回答
2153 浏览

swift - CollectionView with multiple different cells, registered in other CollectionViews

I have two separate view controllers.

In ViewController1, I have a CollectionView1 and a cell that works fine. I set up the cell using storyboard with ReuseIdentifier "Cell1".

In ViewController2, I have another CollectionView2 and a different cell that works fine. I set up the cell also using storyboard with ReuseIdentifier "Cell2".

Both cells have custom cell classes, UserCell1 and UserCell2, and work fine within their separate CollectionViews.

Now, for the 2nd cell in the CollectionView2, I want to use the cell from the first collection view (ie. IndexPath(row: 1, section: 0)).

In CollectionView2, I want:

On ViewController2, within the cellForItemAt, I have tried using formula that indicates which cell to dequeue at each index. However, it is telling me that the cell from the first ViewController is not registered... but that same cell is working within its home CollectionView, so the ReuseIdentifier is clearly working.

Within cellForItemAt (numberOfRowsInSection = 2):

The error I'm getting is:

Thanks in advance!!!! This is driving me crazy :(

0 投票
0 回答
39 浏览

ios - UICollectionView 在每个部分都有不同的布局

我有一个UICollectionView我想在 和 中具有特定高度的单元格的section 0位置section 1。在section 2我希望两个单元格看起来像这样:

单元 1 - 单元 2

细胞 3 - 细胞 4

单元 5 - 单元 6

第 2 节中 CollectionViewCells 的高度应根据内容而定,但宽度应相同。我希望单元格顶部对齐,所以它看起来不像 WaterFallLayout

0 投票
0 回答
61 浏览

ios - UICollection ContentInsetAdjustment 行为修改'ghost'可重用视图而不是我的标题

我很难让 UICollectionView 内容插入调整行为设置正常工作。它似乎正在修改'ghost' ReusableView 的位置,而不是我的标题视图。在此屏幕截图中,选择了幻影视图,我试图控制的标题视图是绿色(它的背景颜色)。

我已经尝试使用故事板和程序选项,两者都在移动幽灵视图的位置而不是我的可见视图。我找不到这些幻影视图的生成位置,也无法在情节提要中看到它们。

鬼视图的屏幕截图

这是我的可重用视图功能:

有没有其他人见过这样的事情?

0 投票
1 回答
582 浏览

swift - 补充标题的 UICollectionView 位置

我希望在我的收藏视图的部分上放置一个标题。我在tablebview 中嵌入了一个collectionview。使用 tableview 的部分标题会使标题离内容太远。将节标题作为集合视图的一部分;但是,将该标题放在集合视图单元格本身的顶部。我正在寻找部分标题和部分详细信息之间的一些空间。

现在对于集合视图标题单元格:

通过在标题单元格本身上放置背景颜色,我注意到的一件事是标题单元格的高度等于集合视图的高度。无论如何,我似乎无法独立于集合视图单元格调整标题视图单元格的高度。如果我更改layout.itemSize它会更改标题和内容的大小。如果我使用layout.headerReferenceSize,它不会改变任何东西。从代码中可以看出,我也在使用委托方法。根据文档,在这样的水平滚动情况下,它似乎不会查看高度。我也尝试直接设置标题单元格的框架,但这被忽略了。

网络,我的部分标题在收藏视图中撞到我的常规内容中。我怀疑这可能是因为标题的高度是集合视图的高度,因此它被定位得尽可能高。我无法更改高度,也无法找到任何其他方式将标题与内容分开。

0 投票
1 回答
348 浏览

ios - UICollectionView 带有两个 UICollectionViewFlowLayout

我正在开发一个 iOS 项目,Swift。我们如何为一个 collectionView 分配两种不同的流布局?在这里,我需要我的 UICollectionViewCell 看起来像一个堆栈卡,为此,我使用 CardsCollectionViewLayout(外部 pod 文件)。

它工作正常。但问题是我无法使用设备宽度调整 UICollectionViewCell 宽度。为此,我需要使用 UICollectionViewDelegateFlowLayout。

但是当我使用 CardsCollectionViewLayout 作为我的 collectionView 布局时,我没有在上面的方法中得到回调。

或者

有什么方法可以用我的 UICollectionViewCell 添加堆栈卡效果。

在此处输入图像描述

请帮我。

0 投票
0 回答
42 浏览

swift - UICollectionViewFlowLayout 中的 UICollectionViewCell 重复行

Starsky
回答我正在尝试构建一个视图,其中包含多个水平滚动列表,其中在同一行中填充了 12 个单元格。问题是单元格显示“在同一行的两行中”。为了澄清,该行被分成两行,每行 6 个单元格相互堆叠。

该视图是一个 UITableView,其中每一行都是一个 UITableViewCell。UITableViewCell 有一个具有水平滚动方向的 UICollectionViewFlowLayout。UITableViewCell 包含一个 UICollectionView。UICollectionView 填充有从 UINib(来自 XIB 文件)注册的 UICollectionViewCell:s 列表。

一切都正确加载并且工作正常,但是 UICollectionViewCell:s 在水平滚动列表中堆叠成两行 6 个单元格,每个单元格应该由一行 12 个单元格组成。

我可以包含更多代码,但我不知道问题出在哪里,可能与 dequeueReusableCell 有关,请参阅下面的附加代码?

请注意,我尝试添加奇数个元素。然后上排比下排长一个单元格,像这样。看起来它环绕着两条线。
实际

XXXXXXX
XXXXXX

预期

XXXXXXXXXXXXX


预期结果:

XXXXXXXXXXXX

XXXXXXXXXXXX

XXXXXXXXXXXX



实际结果:

XXXXXX
XXXXXX

XXXXXX
XXXXXX

XXXXXX
XXXXXX

其中 X 是可滚动列表中的一个单元格。

0 投票
1 回答
492 浏览

ios - 使用 collectionView(_:layout:sizeForItemAt:) 调整 UICollectionView 单元格的大小而不调用 reloadData()

我正在尝试实现一个UICollectionViewCell包含UITextView在运行时随着用户输入的文本量增加而调整大小的a,以及根据文本框的大小向上或向下移动其上方的单元格。(这UICollectionView是用 实现的UICollectionViewDelegateFlowLayout

当用户textViewDidChange()通过UITextViewDelegate. 但是,这不会改变其他单元格的位置,因为collectionView(\_:layout:sizeForItemAt:)不会立即调用。如果我reloadData()UICollectionView类中调用,我可以触发 collectionView(_:layout:sizeForItemAt:),这会相对于感兴趣的单元格重新定位其他单元格,但问题是这会重新加载所有对象和键盘立即关闭。

有没有办法collectionView(_:layout:sizeForItemAt:)不调用就触发reloadData()

我想知道的另一个问题是在运行时调整 CollectionView Cell 的大小而不重新加载,但他们的问题也没有得到回答。

0 投票
3 回答
589 浏览

ios - UICollectionView - 随机选择单元格

我有一个水平 UICollectionView,就像 iOS 中的水平日历一样。分页已启用但不允许MultipleSelection。

每页只有 5 个单元格。

CollectionView 的高度也是 60。

didSelectItemAt将背景颜色更改为.red并且didDeselectItem将其重置为.white

集合视图有多个部分和行。如果我在第一个可见页面中选择一个单元格并滚动,则会在下一个可见页面中选择随机单元格。也就是说,随机单元格在接下来的页面中是红色的。我不希望这样。我想手动选择/更改单元格的颜色。

我怎样才能解决这个问题?

0 投票
0 回答
80 浏览

ios - UICollectionViewFlowLayout 不扩展项目间距以适应宽度?

UICollectionView在 Apple 文档中本指南的流程布局部分,在“指定项目和行之间的空间”下,我们读到:

在布局期间,流布局对象将项目添加到当前行,直到没有足够的空间来容纳整个项目。如果该行刚好足以容纳整数个没有额外空间的项目,那么项目之间的空间将等于最小间距。如果行尾有多余的空间,布局对象会增加项目间的间距,直到项目均匀地放在行边界内,如图 3-3 所示。增加间距可以改善项目的整体外观并防止每行末尾出现大的间隙。

(强调我的)

但这似乎不是真的。从 iOS 12.4 和 iOS 13 beta 7 开始,如果您使用未填充可用宽度的小单元格制作垂直滚动的集合视图,则项目间间距不会从最小值扩展以填充宽度。请参阅此示例,其中包含两个部分,每个部分 5 个项目,20pt x 20pt,最小项目间距、最小行间距和部分插入全部为 4 pt:

模拟器截图

文档是否已过时?或者我可能在做一些奇怪的事情?这是一个示例应用程序,它只包含一个集合视图,其委托/数据源使用UICollectionViewCells仅具有背景颜色的 vanilla,并实现上述大小调整方法,仅此而已。

代码:

0 投票
1 回答
161 浏览

c# - 单击未调用的 UICollectionViewCell 中的特定元素(而是从 Source 触发的 ItemSelected)Xamarin.ios

我的 Xamarin.iOS 项目中有一个 CollectionView。我的 UICollectionViewCell 中有一个按钮,我希望我的按钮上有 TouchDown。

但是当我点击这个按钮时,ItemSelected 被触发而不是我的 TouchDown 事件处理程序(调用单元格上的全局触摸而不是特定触摸)。

你能帮我如何在任何单元格内指定我的触摸吗?(对不起我的英语不是顶级)

这是我的代码的前一个: