Iphone 如何基于移动方法中的点旋转UIImageView?

Iphone 如何基于移动方法中的点旋转UIImageView?,iphone,objective-c,ipad,Iphone,Objective C,Ipad,亲爱的大家, 我想相对于触摸移动方法中的点旋转UIImageView 我尝试了2-3种方法,但我没有得到我预期的确切结果 我使用的第一种方法 CGAffineTransform transforms = CGAffineTransformMakeRotation(M_PI/2); imgView.transform = transforms; 这是用TouchsMoved编写的。因此,我希望在每个TouchsMoved中图像视图都会旋转。 但这种旋转只发生了一次 我使用的第二种方法是 CGA

亲爱的大家,

我想相对于触摸移动方法中的点旋转UIImageView

我尝试了2-3种方法,但我没有得到我预期的确切结果

我使用的第一种方法

CGAffineTransform transforms = CGAffineTransformMakeRotation(M_PI/2);

imgView.transform = transforms;
这是用TouchsMoved编写的。因此,我希望在每个TouchsMoved中图像视图都会旋转。 但这种旋转只发生了一次

我使用的第二种方法是

CGAffineTransform transforms = CGAffineTransformRotate(imgView.transform, M_PI/2);

imgView.transform = transforms;
现在我得到的结果是图像视图中的图像在每一个移动中都是连续旋转的。但imageview并没有旋转。我需要的是旋转图像视图,而不是图像

任何帮助都将不胜感激

谢谢并致以最良好的问候,
鲁佩什·梅农

这是因为你将它旋转了M_PI/2,当你再次旋转它时,它会从初始位置旋转。使用这个

CGAffineTransform transforms = CGAffineTransformConcat(imgView.transform,CGAffineTransformMakeRotation(M_PI/2));
imgView.transform = transforms;

如果我理解正确,您希望在图像上实现单手指旋转。如果是这样,您可以使用我的一个实时工作项目中的以下功能。您可以将其用于单个图像以及多个图像。您需要在一定程度上修改多个图像。最好的方法是扩展UIImageView类并创建自己的类

从中调用此函数

  • [触摸自转换图像:触摸]
声明1个属性并如下合成。(如果以下代码中需要,请声明其他变量

  • @性质(非原子)cGTROTATEDANGLE

希望能有帮助。如果你有自尊心,请告诉我我一定会帮助你。

谢谢你对帮助我表现出的兴趣

当我使用下面的代码时,我能够以我想要的角度旋转图像视图

imgView.layer.transform=CATTransformerM3dMakeRotation(pCalculator.tangentToCornerAngle,0,0,1)

其中,imgView是一个UIImageView

  pCalculator.tangentToCornerAngle  is the desired angle in which rotation has to be made.

Function is CATransform3DMakeRotation(CGFloat angle, CGFloat x, <CGFloat y, CGFloat z);
pCalculator.Tangent ToCornerAngle是必须进行旋转的所需角度。

功能是CATTransferM3DMake旋转(CGFloat angle,CGFloat x,亲爱的Inder,我已经尝试了你的建议。但它给我的结果与我在第二种方法中使用的结果相同。即:图像正在旋转而不是图像视图。我需要图像视图旋转。任何方式都要感谢你的兴趣。你怎么说图像视图没有旋转,你正在旋转图像视图不内容为什么旋转的图像…我亲爱的朋友,你一定有一个正方形的图像视图,所以旋转90度会让它感觉一样。改变它的高度或宽度(矩形而不是正方形)然后你可以看到差异,或者你可以将其旋转45度仅用于测试目的。
M_PI/4
不,亲爱的。我的图像视图不是正方形。它是纯矩形的。但是,在测试项目中对其进行了测试,效果很好……只需将背景颜色更改为红色,在其中放置一个较小的图像,并将其contentMode设置为centerYes、 它也没有给出所需的输出。谢谢Jennis,这真的很有帮助。我可以使用代码中的某些部分。@Jennis,我既要旋转,也要平移如果我要旋转,然后将图像拖动到屏幕的其他部分,我该如何做?您必须先定义操作,即旋转或平移的操作。并根据选定的动作进行相应的操作。你们可以很容易地从教程中获得翻译代码。和我给出的旋转。
  pCalculator.tangentToCornerAngle  is the desired angle in which rotation has to be made.

Function is CATransform3DMakeRotation(CGFloat angle, CGFloat x, <CGFloat y, CGFloat z);