如何在 Grid 中拖动和移动子视图以交换它们的位置

Posted

技术标签:

【中文标题】如何在 Grid 中拖动和移动子视图以交换它们的位置【英文标题】:how to drag and move child views in Grid to swap their positions 【发布时间】:2018-04-20 01:45:29 【问题描述】:

我已经搜索了几天,但没有找到一个好的解决方案。我正在开发一个 Xamarin.ios 项目,它使用 Grid 来排列多个视图。

我想要的是将一个子视图拖动并移动到另一个位置以交换两个视图的位置。例如,如果我有 2 行 2 列,我们称它们为视图 0、1、2、3。如果我将视图 0 拖动到视图 2,那么视图 0 和视图 2 将交换它们的位置。

我第一次尝试使用dragInteraction和dropInteraction,但经过测试,拖动时并没有真正移动子视图,只是移动了一些提供的数据。

但是搜索一下,我发现了一些在ListView里面拖拽移动的解决方案。但似乎 ListView 不支持多列。

有人可以给我一些线索吗?非常感谢。顺便说一句,我要拖动的子视图是使用 AVPlayer 播放视频的 UIView。

【问题讨论】:

【参考方案1】:

似乎我没有很努力地搜索:) 发布问题后不久就找到了答案。使用 UIPanGestureRecognizer 进行拖动和移动。

【讨论】:

以上是关于如何在 Grid 中拖动和移动子视图以交换它们的位置的主要内容,如果未能解决你的问题,请参考以下文章

是否可以通过拖动将一个视图的子视图移动到另一个视图?

iOS Spring board,如 Grid View,在 iOS 5 中具有拖动和移动项目 + 删除选项

如何获得可访问性滑动以正确导航子视图集合?

如何找到子视图的数量?

跨多个子视图的 SwiftUI 拖动手势

拖动底部子视图之一时平滑更新顶部子视图(iOS)