我有一个应用程序,它允许用户上下移动 UIViews,让外观一个视图可以位于另一个视图之上。通过使用exchangeSubviewAtIndex方法更改超级视图中 UIView 的索引,更改 UIView 的“级别”(父子视图中的索引)非常简单。
/---------/
IDX 1 / A /
/---------/
/---------/
IDX 0 / B /
/---------/
Move 'A' Down
/---------/
IDX 1 / B /
/---------/
/---------/
IDX 0 / A /
/---------/
现在,我使用 NSUndoManager 来记录更改,以便用户可以撤消下移操作。这工作正常。尝试在 NSUndoManager 上执行重做消息时会出现问题。由于正在移动的 UIView 上没有“ZIndex”状态(因为它是其父视图中的一个位置),因此重做不会做任何事情......
有没有办法明确传递重做的重做调用?