问题标签 [uicollectionviewdragdelegate]

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

ios - How can I disable cell dragging between UICollectionView sections?

I have two sections in my UICollectionView. I would like to be able to drag cells within each section but not between them.

I am using a long press gesture recognizer to animate the cell drag movement so I could check that the drop location is not in a different section. Is there a way to determine a section's frame?

Or is there a simpler way?

0 投票
1 回答
571 浏览

uicollectionview - 拖动 UICollectionViewCell 时如何实现透明背景或圆角

我确信一定有一种简单的方法可以做到这一点,但是到目前为止,我已经花了很长时间在各种兔子洞中没有成功。

我有一个支持拖放的集合视图。被拖动的单元格UIImageView在 中contentView,并且图像视图的支持层应用了圆角半径。单元格中所有视图的背景颜色清晰。

拖动时,单元格具有白色背景,显示在图像视图的角落周围:

拖动单元格时出现白色背景

有没有办法将整个可拖动视图四舍五入?或将其背景设置为清除以使烦人的白色边框不可见?

更新

事实证明,解决方案非常简单(假设UIBezierPaths符合您对简单的定义):

您需要覆盖协议的collectionView(_ collectionView: UICollectionView, dragPreviewParametersForItemAt indexPath: IndexPath)方法UICollectionViewDragDelegate,并返回 UIDragPreviewParameters相应的 UIBezierPath 集:

这是一个幼稚的实现,CGRect它对派生贝塞尔路径的硬编码 - 这适用于我的场景,因为所有单元格的大小都相同。更复杂的集合视图需要在这里进行一些自定义计算。

在此处输入图像描述

0 投票
1 回答
575 浏览

ios - UICollectionViewDragDelegate 不工作

我成功地实现了UICollectionView在屏幕上显示一些虚拟文本。一切正常,现在我添加了拖动功能实现self.collectionView.dragDelegate = selfUICollectionViewDelegateFlowLayout,但它不起作用。我还缺少什么吗?

0 投票
0 回答
36 浏览

memory-leaks - 初始化上下文菜单时,UIDragItem 导致内存泄漏

我有一个具有拖放和上下文菜单功能的 CollectionView。当我初始化单元格的上下文菜单时,ItemsForBeginning 方法中返回的 [UIDragItem] 数组会导致内存泄漏。

当我弹出到 rootViewController 时,对象被保存在内存中。发生拖动会话时一切正常。

我最终注释掉了所有内容,保持空白 UIDragItem 并且问题仍然存在:

有人经历过吗?看起来这是一个 UIKit 错误...

请帮忙!