拖拽以重新排列已排列的子视图



我试图得到一些建议,如何去实现相同的"拖到重新排序"的行为在UITableView上发现,但在UIStackView上。

到目前为止,这是我的想法:

  1. 为每个arrangedSubview s添加一个长按手势识别器
  2. 长按,添加覆盖UIView作为主视图的子视图,并填充整个主视图。当我拖拽临时的"重新排序"视图时,这个叠加视图将充当某种"画布"——我们将其称为tempView——围绕(更多内容在4中)
  3. arrangedSubviewalpha设置为0(设置hidden = true将导致UIStackView动画关闭,好像它被删除了。
  4. 添加一个tempView到叠加视图(见3)arrangedSubview
  5. 相同的初始帧
  6. 向上或向下拖动tempView,并根据tempView的位置计算索引插入/删除实际arrangedSubview
  7. 当长按state.Ended时监听,并设置arrangedSubview.alpha = 1并从主视图中移除覆盖视图。

有什么建议吗?有没有人看到明显的漏洞?你会改变什么?你会朝哪个方向去实现这个目标?

我创建了一个自定义控件来解决这个问题,可以在这里找到。

请参阅我对已知问题和未来更新的问题帖子的最后评论。

相关内容

  • 没有找到相关文章

最新更新