问题标签 [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.
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 :(
ios - UICollectionView 在每个部分都有不同的布局
我有一个UICollectionView
我想在 和 中具有特定高度的单元格的section 0
位置section 1
。在section 2
我希望两个单元格看起来像这样:
单元 1 - 单元 2
细胞 3 - 细胞 4
单元 5 - 单元 6
第 2 节中 CollectionViewCells 的高度应根据内容而定,但宽度应相同。我希望单元格顶部对齐,所以它看起来不像 WaterFallLayout
ios - UICollection ContentInsetAdjustment 行为修改'ghost'可重用视图而不是我的标题
我很难让 UICollectionView 内容插入调整行为设置正常工作。它似乎正在修改'ghost' ReusableView 的位置,而不是我的标题视图。在此屏幕截图中,选择了幻影视图,我试图控制的标题视图是绿色(它的背景颜色)。
我已经尝试使用故事板和程序选项,两者都在移动幽灵视图的位置而不是我的可见视图。我找不到这些幻影视图的生成位置,也无法在情节提要中看到它们。
这是我的可重用视图功能:
有没有其他人见过这样的事情?
swift - 补充标题的 UICollectionView 位置
我希望在我的收藏视图的部分上放置一个标题。我在tablebview 中嵌入了一个collectionview。使用 tableview 的部分标题会使标题离内容太远。将节标题作为集合视图的一部分;但是,将该标题放在集合视图单元格本身的顶部。我正在寻找部分标题和部分详细信息之间的一些空间。
现在对于集合视图标题单元格:
通过在标题单元格本身上放置背景颜色,我注意到的一件事是标题单元格的高度等于集合视图的高度。无论如何,我似乎无法独立于集合视图单元格调整标题视图单元格的高度。如果我更改layout.itemSize
它会更改标题和内容的大小。如果我使用layout.headerReferenceSize
,它不会改变任何东西。从代码中可以看出,我也在使用委托方法。根据文档,在这样的水平滚动情况下,它似乎不会查看高度。我也尝试直接设置标题单元格的框架,但这被忽略了。
网络,我的部分标题在收藏视图中撞到我的常规内容中。我怀疑这可能是因为标题的高度是集合视图的高度,因此它被定位得尽可能高。我无法更改高度,也无法找到任何其他方式将标题与内容分开。
ios - UICollectionView 带有两个 UICollectionViewFlowLayout
我正在开发一个 iOS 项目,Swift。我们如何为一个 collectionView 分配两种不同的流布局?在这里,我需要我的 UICollectionViewCell 看起来像一个堆栈卡,为此,我使用 CardsCollectionViewLayout(外部 pod 文件)。
它工作正常。但问题是我无法使用设备宽度调整 UICollectionViewCell 宽度。为此,我需要使用 UICollectionViewDelegateFlowLayout。
但是当我使用 CardsCollectionViewLayout 作为我的 collectionView 布局时,我没有在上面的方法中得到回调。
或者
有什么方法可以用我的 UICollectionViewCell 添加堆栈卡效果。
请帮我。
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 是可滚动列表中的一个单元格。
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 的大小而不重新加载,但他们的问题也没有得到回答。
ios - UICollectionView - 随机选择单元格
我有一个水平 UICollectionView,就像 iOS 中的水平日历一样。分页已启用但不允许MultipleSelection。
每页只有 5 个单元格。
CollectionView 的高度也是 60。
didSelectItemAt将背景颜色更改为.red并且didDeselectItem将其重置为.white。
集合视图有多个部分和行。如果我在第一个可见页面中选择一个单元格并滚动,则会在下一个可见页面中选择随机单元格。也就是说,随机单元格在接下来的页面中是红色的。我不希望这样。我想手动选择/更改单元格的颜色。
我怎样才能解决这个问题?
ios - UICollectionViewFlowLayout 不扩展项目间距以适应宽度?
UICollectionView
在 Apple 文档中本指南的流程布局部分,在“指定项目和行之间的空间”下,我们读到:
在布局期间,流布局对象将项目添加到当前行,直到没有足够的空间来容纳整个项目。如果该行刚好足以容纳整数个没有额外空间的项目,那么项目之间的空间将等于最小间距。如果行尾有多余的空间,布局对象会增加项目间的间距,直到项目均匀地放在行边界内,如图 3-3 所示。增加间距可以改善项目的整体外观并防止每行末尾出现大的间隙。
(强调我的)
但这似乎不是真的。从 iOS 12.4 和 iOS 13 beta 7 开始,如果您使用未填充可用宽度的小单元格制作垂直滚动的集合视图,则项目间间距不会从最小值扩展以填充宽度。请参阅此示例,其中包含两个部分,每个部分 5 个项目,20pt x 20pt,最小项目间距、最小行间距和部分插入全部为 4 pt:
文档是否已过时?或者我可能在做一些奇怪的事情?这是一个示例应用程序,它只包含一个集合视图,其委托/数据源使用UICollectionViewCells
仅具有背景颜色的 vanilla,并实现上述大小调整方法,仅此而已。
代码:
c# - 单击未调用的 UICollectionViewCell 中的特定元素(而是从 Source 触发的 ItemSelected)Xamarin.ios
我的 Xamarin.iOS 项目中有一个 CollectionView。我的 UICollectionViewCell 中有一个按钮,我希望我的按钮上有 TouchDown。
但是当我点击这个按钮时,ItemSelected 被触发而不是我的 TouchDown 事件处理程序(调用单元格上的全局触摸而不是特定触摸)。
你能帮我如何在任何单元格内指定我的触摸吗?(对不起我的英语不是顶级)
这是我的代码的前一个: