问题标签 [uicollectionviewdelegate]

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 投票
1 回答
152 浏览

uicollectionview - 具有相等项目间距的自定义 UICollectionViewLayout

我很难弄清楚如何设计我的收藏视图应该是一个相当简单的布局。每个单元格的高度相等。宽度各不相同。项目间的间距应始终相等。行之间的距离也应该始终相等。随着更多项目的添加,集合视图的宽度将“智能地”增加。让我举个例子。

所需布局

当我插入一个新项目时,我将计算项目从行的移动(可能第 1 行的第一项移动到第 0 行,也许第 2 行的第一项移动到第 1 行。然后我移动它和集合视野越来越宽。

出于说明目的添加的颜色

我觉得这应该相当简单,但我正在努力。有没有人有一些可以提供帮助的示例代码?

0 投票
0 回答
287 浏览

ios - uiviewcontroller 中的collectionview,显示为popover

我有UICollectionView一个视图控制器,我将其作为弹出窗口呈现。问题是我无法水平滚动,尽管我将滚动方向设置为水平。

模拟器打印屏幕

我确实只有一个弹跳,也就是说我在我的收藏视图中用三个手指拖动,我可以看到右侧存在更多单元格,但是在我释放滚动视图后,你可以看到回到初始位置图片。

欢迎任何建议。

0 投票
2 回答
634 浏览

ios - 在 UICollectionviewCell 数据最初没有加载

在 UIcollectionviewcell 中,数据最初并未加载到单元格中,而是加载了单元格的布局。当滚动到最后一个单元格并向后滚动时,它似乎正确地填充了数据,没有任何问题。我正在从 json 数组中获取数据。获取 json 数组后,我正在重新加载集合视图。我在情节提要中使用带有自动布局的原型单元。我尝试使用按钮操作重新加载,但在这种情况下,只有可见单元格正在更新我正在使用 flowlayout 和水平滚动这是我的 cellforitem 代码

0 投票
1 回答
2436 浏览

ios - touchesBegan 没有在 UICollectionViewController 中触发

我有一UICollectionViewController堂课,上面放着一堆细胞。当用户触摸一个单元格时,我想使用该touchesBegan方法来防止新的触摸,直到第一次触摸完成对单元格的选择。

我尝试将以下代码放在我的视图控制器中,但它从未被调用。

但是,在我的项目的其他地方,我有另一个类是UIViewController. 在那里,我touchesBegan在下面的代码中使用来关闭该类中文本视图的键盘,并且该代码被调用得很好。

为什么这段代码在一个类而不是另一个类中工作?以及如何在我的集合视图单元格中使用touchesBeganUICollectionViewController检测触摸?Swift 中的解决方案将不胜感激。谢谢你的时间!

研究: 我检查了这个解决方案: Handle Touch in UiCollectionView? 但答案大多适用于该特定项目。

我尝试使用手势识别器运行self.collectionView?.userInteractionEnabled = false,但手势识别器不会触发selector.state == .Began,仅用于.Ended. 所以我不能用它来防止进一步的接触。

我也尝试使用 aUILongPressGestureRecognizer来做同样的事情,但是该手势会阻止集合视图单元格侦听的默认点击手势,因此从未接收到单元格上的常规点击,因此无法选择单元格。

我发布了一个解决方法作为答案,尽管它没有回答原始问题。

0 投票
1 回答
731 浏览

ios - UICollectionViewCell 无法为 CustomCollectionViewCell 赋值

我创建了一个自定义 UICollectionViewCell 并尝试从UICollectionView delegate方法中引用它cellForItemAtIndexPath并且我不断得到Cannot assign value of type 'UICollectionViewCell' to type 'GridViewCell'

委托方法

GridViewCell 类

0 投票
1 回答
605 浏览

ios - UICollectionView 和在单元格上写入文本

我使用UICollectionView. 它运作良好,如第一张图片所示。

我创建的每一行代表不同的部分,即第一行是第 0 部分,第二行是第 1 部分,依此类推。

我需要为每一行写文本。我可以写出第一张图片所示的文字。

但问题是,一旦 CollectionView 滚动,第 0 节(第 0 行)中写入的文本会以不同的顺序在另一行(通常是滚动前隐藏的行)中重复,如第二张图所示。

我的代码如下所示。

这意味着这个回调函数总是在滚动时被调用。

如何防止一行中的文本在另一行中不重复,并且在滚动时始终停留在专用行中。

谢谢

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
137 浏览

ios - 为什么 UICollectionViewDelegate 和 UICollectionViewDataSource 是不同的协议?

我正在尝试为 UICollectionViewDelegate 和 UICollectionViewDataSource 实现一个单独的类。但是,我似乎总是需要访问数据模型才能计算某些委托方法,例如单元格的大小。

我从未见过这两个协议在不同的类中实现,那么为什么 Apple 将它们设为不同的协议呢?

0 投票
3 回答
4085 浏览

ios - tvos UICollectionView 失去焦点到前一个焦点单元

我正在构建一个tvos应用程序。我有一个奇怪的错误,UICollectionView当我导航回该特定视图时,会失去先前选择的单元格的焦点。场景是这样的。

我有两个UIViewControllers ABA有一个UITableView,其中有三个原型单元。每个单元格内部都有一个水平滚动UICollectionView。当我单击其中任何一个时,UICollectionViewCell它会导航到B(详细信息页面)。我B以模态方式呈现。

现在,当我按下 Siri 远程视图上的菜单按钮A时(换句话说,视图B已从视图层次结构中删除),但当前选定的单元格与先前选定的单元格不同。我曾尝试同时使用remembersLastFocusedIndexPathtruefalse,也尝试通过实施

func indexPathForPreferredFocusedViewInCollectionView(collectionView: UICollectionView) -> NSIndexPath?

但是当我导航回视图 A 时,控件会出现此功能。我也在重新加载viewWillAppear功能中的所有内容。

任何人都可以帮助我。谢谢

0 投票
2 回答
227 浏览

ios - 滚动时奇怪的消失项目

预设,

我有 collectionViewFlowLayout 子类

CollectionView 旋转到倒置滚动

但是即使只是使用没有子类化的原生collectionViewFlowLayout,一个git这个错误

问题

我在聊天中有两条消息和更多消息,但是当底部滚动(通常是顶部)时,第二项消失了。

给定矩形的 layoutAttributesForElementsInRect 返回两个 indexPaths 0-0 和 0-1 的属性,但委托方法

只为 indexPath 0-0 调用

这里图片

顶部滚动 在此处输入图像描述

更新 所以我发现它为什么会发生 - 这行代码

看看是否删除变换

在此处输入图像描述

0 投票
1 回答
231 浏览

objective-c - UICollectionViewDelegate 没有在具有自定义 UICollectionViewCell 和 NSObject 控制器的 UICollectionView 子类上触发

我已将UICollectionView其委托和数据源子类化并分配给 NSObject 类。我使用UICollectionViewCell带有 .xib 的自定义来构造集合视图的单元格。该项目可以在这里找到: https ://github.com/JeffModMed/CustomUICollectionView

正如您将看到的,数据源方法工作正常,但是当用户点击单元didSelectItemAtIndexPathshouldSelectItemAtIndexPath时不会调用,这让我相信UICollectionViewDelegate. 我能想到的唯一其他可能的问题区域是我使用自定义UICollectionViewCell类或注册其 .xib 文件的方式有问题。

注意:请不要回答建议我UICollectionViewController用作替代方案:代码必须以这种方式完成才能与更大的项目合并。提前致谢。