我使用捏手势让用户增加/减少图像的大小。我临时操作CGAffineTransform让用户使用缩放比例,然后撤消它并设置帧大小,以便图像以质量进行缩放(CGAffineTransformScale对图像质量没有影响,只会伸出图像)。用缩放手势缩放UIImageView
-(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应用于它们),当捏合手势完成时会发生什么情况是图像视图变成了非常细的矩形,没有任何旋转或缩放。
我以为我可以继续原有的旋转,并应用它后框架设置,但我不认为这是行得通。任何帮助表示赞赏。谢谢
嗨,“转化为身份”是什么意思?此外,你如何缩放框架,你的意思是使用捏手势缩放来操纵frame.size.width/height而不是CGAffineTransformScale?谢谢 – user339946 2012-03-16 23:49:49
身份转换基本上是一种无所作为,不缩放,旋转或倾斜的转换。通过缩放框架我的意思是操纵帧大小,是的,但请记住,你将不得不重新定位相应的视图,最好通过保存view.center之前缩放和重新应用它 – Ahti 2012-03-19 02:20:44