NSUndoManager 使用旋转手势撤消 UIImage 旋转
如何使用 NSUndoManager
使用旋转手势来旋转 UIImageView
?这是我的旋转代码。
- (void)handleRotate:(UIRotationGestureRecognizer *)recognizer
{
if (recognizer.state == UIGestureRecognizerStateBegan) {
prevRotation = 0.0;
}
float thisRotate = recognizer.rotation - prevRotation;
prevRotation = recognizer.rotation;
recognizer.view.transform = CGAffineTransformRotate(recognizer.view.transform, thisRotate);
CGPoint lastpoint = point;
}
How to use NSUndoManager
to rotate a UIImageView
using rotation gesture? This is my code for rotation.
- (void)handleRotate:(UIRotationGestureRecognizer *)recognizer
{
if (recognizer.state == UIGestureRecognizerStateBegan) {
prevRotation = 0.0;
}
float thisRotate = recognizer.rotation - prevRotation;
prevRotation = recognizer.rotation;
recognizer.view.transform = CGAffineTransformRotate(recognizer.view.transform, thisRotate);
CGPoint lastpoint = point;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先,阅读 “在 iPhone 上使用撤消”。确保您已在响应程序链中的某个位置(可能在视图控制器中)设置了 undoManager 属性。
我们只想在手势结束时推送撤消操作。但是当我们推动撤消操作时,我们需要知道手势开始时视图的变换。创建一个实例变量来保存原始变换:
接下来,我们需要一个方法来推送撤消操作并设置视图的变换:
您的
handleRotate:
方法需要检测手势的状态并采取适当的操作行动。First of all, read “Using Undo on iPhone”. Make sure you have set the
undoManager
property somewhere in your responder chain (probably in your view controller).We only want to push an undo action when the gesture ends. But when we push the undo action, we need to know the view's transform when the gesture started. Create an instance variable to hold that original transform:
Next, we need a method that pushes an undo action and sets the view's transform:
Your
handleRotate:
method needs to detect the state of the gesture and take the appropriate action.