2015-10-16 57 views
4

我想获得一些建议,关于如何去执行在UITableView,但在UIStackView发现相同的“拖动重新排序”行为。UIStackView - 拖动重新排列排列的子视图?

到目前为止,这是我在想什么:

  1. 添加长按手势识别到每个arrangedSubview小号
  2. 在长按的,作为一个子视图添加一个覆盖UIView到主视图并且充满了整个主要观点。各地(上更4)
  3. 设置的的alpha - 因为我拖了临时的“重新排序”的观点 - 我们称此为tempView这个重叠视图将作为各种各样的“画布” arrangedSubview为0(设置hidden = true将导致UIStackView动画闭中,如同其被除去。
  4. 添加tempView到覆盖视图(参见3)具有相同的初始帧作为arrangedSubview
  5. 拖动tempView向上或向下插入/删除实际的arrangedSubview在计算的指数bas编辑tempView的位置。
  6. 收听长按state.Ended并设置arrangedSubview.alpha = 1并从主视图中删除重叠视图。

有什么建议吗?任何人看到的任何明亮的洞?你会改变什么?你会为了完成这个目标走什么方向?

+1

可能会好很多,如果你只是使用tableview,它处理重新排序的动画和东西非常好,如果你试图自己做,它将需要大量的工作来复制。是否有一个特定的原因,你需要使用堆栈视图? – Fonix

+1

@Fonix我知道使用UITableView会更容易,但我试图让它在UIStackView上工作,以获得它在UIStackView上工作的清晰度(和纯粹的喜悦)。 –

+0

听起来不错 - 你是否设法建造它?我已经开始将大部分代码移植到UIStackViews中,并且对我的旧代码赢得了巨大的胜利。在UIStackView中对视图进行重新排序可以解决目前我的一个重大问题。 – Mof

回答

3

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

请参阅我最近对问题文章发表的关于已知问题和未来更新的评论。