Ios UIStackView-拖动以重新排列排列的子视图?
我正在尝试获取一些建议,以了解如何实现在Ios UIStackView-拖动以重新排列排列的子视图?,ios,swift,uitableview,uikit,uistackview,Ios,Swift,Uitableview,Uikit,Uistackview,我正在尝试获取一些建议,以了解如何实现在UITableView但在UIStackView上发现的相同类型的“拖动以重新排序”行为 到目前为止,我的想法是: 向每个排列的子视图添加长按手势识别器 长按时,在主视图中添加覆盖视图作为子视图,并填充整个主视图。当我拖动临时“重新排序”视图时,这个覆盖视图将充当排序的“画布”,我们将其称为tempView-around(在第4章中有更多介绍) 将arrangedSubview的alpha设置为0(设置hidden=true将导致UIStackView动画
UITableView
但在UIStackView
上发现的相同类型的“拖动以重新排序”行为
到目前为止,我的想法是:
tempView
-around(在第4章中有更多介绍)arrangedSubview
的alpha
设置为0(设置hidden=true
将导致UIStackView
动画接近,就好像它被移除一样tempView
添加到叠加视图(请参见3),其初始帧与arrangedSubview
临时视图
,并根据临时视图
的位置,在计算出的索引处插入/删除实际的排列子视图
状态
为结束时的声音
,设置排列Subview.alpha=1
并从主视图中删除覆盖视图有什么建议吗?有人看到什么明显的漏洞吗?你会改变什么?你会朝着什么方向去实现这一点?我创建了一个自定义控件来解决这个问题,可以找到它
请参阅我在问题帖子上关于已知问题和未来更新的最后一条评论。如果您只使用tableview,可能会更好,它可以很好地处理重新排序的动画和其他内容,如果您自己尝试这样做,这将需要大量的工作来复制。您需要使用堆栈的具体原因是什么view?@Fonix我知道使用UITableView会更容易,但为了(和纯粹的快乐),我正试图在UIStackView上实现这一点让它在UIStackView上工作。听起来不错-你成功构建了它吗?我已经开始将我的大部分代码移植到UIStackView,这是对我的旧代码的巨大胜利。在UIStackView中重新排序视图将解决我目前的一个大问题。@Mof我确实做到了!我会抛出一个github repo,并在某个时候发送给你她今晚还是明天。@ClayEllis很棒-我很期待。谢谢。