UIStackView – 拖动重新安排的子视图?
我试图得到一些build议,关于如何去实现UITableView
但在UIStackView
上find同样的“拖动重新sorting”的行为。
到目前为止,这是我在想什么:
- 为每个
arrangedSubview
的子视图添加一个长按手势识别器 - 长按,添加覆盖
UIView
作为子视图到主视图,并填充整个主视图。 这个覆盖视图将作为一种“canvas”,因为我正在拖动临时的“重新sorting”视图(我们将这个视图称为tempView
) (更多地在4中) - 将
arrangedSubview
的alpha
arrangedSubview
为0(设置hidden = true
会导致UIStackView
animationclosures,就好像被删除一样。 - 使用与
tempView
的子视图相同的初始框架将一个tempView
添加到叠加视图(请参阅3) - 向上或向下拖动
tempView
,并根据tempView
的位置在计算的索引处插入/移除实际arrangedSubview
的子tempView
。 - 当长按
state
为“已.Ended
并且设置了.Ended
arrangedSubview.alpha = 1
,请.Ended
并从主视图中移除覆盖视图。
有什么build议么? 任何人都看到的任何明亮的洞? 你会改变什么? 你会去什么方向去完成这个?
我已经创build了一个自定义控件来解决这个问题,可以在这里find。
请查看我对最近发表的关于已知问题和未来更新的评论。