UITableView - 如何在拖放期间更改单元格的背景颜色?

Posted

技术标签:

【中文标题】UITableView - 如何在拖放期间更改单元格的背景颜色?【英文标题】:UITableView - How to change the background color of cell during drag drop? 【发布时间】:2018-03-19 08:54:29 【问题描述】:

我正在两个 UITableView 之间实现拖放。 当在 tableView 上拖动项目时,tableView 会自动显示将插入新单元格的空间。我想通过更改背景颜色来突出显示该空间。

目前,新单元格的空间显示为白色。如果我改变 UITableView 的背景颜色,那么空间会反映相应的背景颜色。但是,我不想更改 tableView 的背景颜色。

有人可以帮助我如何实现它吗?

这是我正在寻找的功能的屏幕截图。

谢谢, 费利克斯.J

【问题讨论】:

添加你已经尝试过的代码。 我在 UICollectionView 中实现了拖放。我认为 API 目前不支持您正在寻找的功能。 @PGDev 我的代码无助于解决问题,甚至无法回答。我已经使用以下链接中的参考对拖放进行了编码。 developer.apple.com/documentation/uikit/drag_and_drop/…。我正在寻找的功能可以在 Things 3 应用中看到。 请添加来自 Things 3 应用的截图。 嘿@FelixMarianayagam ...你解决了你的问题吗?我也想知道......(你可能也解决了那个问题......)当拿起单元格时,我希望它的背景不可见,但快照总是显示半透明的白色背景。有什么想法吗? 【参考方案1】:

根据您是尝试设置单元格未来位置的背景还是单元格本身,您可以通过调用dragPreviewParametersForRowAt 函数来更改背景并向拖动单元格添加效果。例如:

func tableView(_ tableView: UITableView, dragPreviewParametersForRowAt indexPath: IndexPath) -> UIDragPreviewParameters? 

        let param = UIDragPreviewParameters()
        param.backgroundColor = .clear
        return param

在表格视图中拖动单元格时将删除默认的白色背景。

【讨论】:

这不会解决它。查看我发布的图片,注意空间如何以灰色(圆形矩形)突出显示。

以上是关于UITableView - 如何在拖放期间更改单元格的背景颜色?的主要内容,如果未能解决你的问题,请参考以下文章

在拖放期间重绘

在拖放项目期间滚动项目

在拖放期间在 NSTableView 中打开一个间隙

Chrome F8/热键调试器在拖放操作期间中断

C#datagridview在拖放值之前获取当前单元格值

如何在 OSX 上拖放期间检测 META 按键