我有一个应用程序,允许用户上下移动UIViews,使一个视图的外观可以位于另一个视图的顶部。通过使用exchangeSubviewAtIndex方法更改超级视图中UIView的索引,更改UIView的“级别”(父视图子视图中的索引)非常简单。
/---------/
IDX 1 / A /
/---------/
/---------/
IDX 0 / B /
/---------/
Move 'A' Down
/---------/
IDX 1 / B /
/---------/
/---------/
IDX 0 / A /
/---------/
现在,我正在使用NSUndoManager记录更改,以便用户可以撤消下移操作。一切正常。尝试在NSUndoManager上执行重做消息时出现问题。由于正在移动的UIView上没有“ ZIndex”状态(因为它是其父视图中的位置),因此重做不会做任何事情。
有没有一种方法可以显式传递重做调用以进行重做?
最佳答案
好的,我的问题是对撤消管理器的重做部分的误解。原来,撤消管理器的重做是另一种撤消,它只是知道它在撤消过程中,并将调用添加到重做堆栈中。
这篇文章是我的重点:
NSUndoManager: redo not working
关于ios - 显式设置NSUndoManager的重做调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12920290/