【发布时间】:2012-03-16 23:26:45
【问题描述】:
我正在使用捏合手势让用户增大/减小图像的大小。我暂时操纵 CGAffineTransform 让用户使用比例,然后撤消它并设置帧大小以便图像按质量缩放(CGAffineTransformScale 对图像质量没有任何作用,只会拉伸图像)。
-(void)handlePinch:(UIPinchGestureRecognizer *)recognizer{
if(recognizer.state == UIGestureRecognizerStateBegan){
self.alpha = 0.7;
startingTransform = self.transform;
}
recognizer.view.transform = CGAffineTransformScale(recognizer.view.transform, recognizer.scale, recognizer.scale);
recognizer.scale = 1;
if (recognizer.state == UIGestureRecognizerStateEnded){
self.alpha = 1.0;
CGRect endFrame = self.frame;
self.transform = startingTransform;
self.frame = endFrame;
//self.transform = CGAffineTransformRotate(self.transform, acos(startingTransform.c)); //reapply rotation?
}
}
问题:我的代码的问题是它没有考虑轮换。我的一些图像开始旋转(之前应用了 CGAffineTransformRotate),当捏合手势完成时会发生什么情况是图像视图扭曲成非常薄的矩形,没有任何旋转或缩放。
我认为我可以继承原始旋转并在设置框架后应用它,但我认为这行不通。任何帮助表示赞赏。谢谢
【问题讨论】: