在iOS中的滑块值上旋转图像

时间:2013-04-16 10:33:23

标签: ios objective-c image image-rotation

我正在滑块上旋转图像 -

我正在使用此代码进行轮换 -

editingView.transform = CGAffineTransformRotate(editingView.transform,sliderVal);

正确旋转但是如果我在旋转后尝试移动或调整大小,则editView会调整大小并出现意外行为,并且视图会从屏幕上消失。

请告诉我我做错了什么。

3 个答案:

答案 0 :(得分:0)

查看this question

由于您没有显示有关如何移动或调整大小的任何代码,我怀疑您没有正确连接转换。此外,在完成旋转后,平移可能会在旋转的坐标系上起作用,从而导致意外行为。

答案 1 :(得分:0)

每当您旋转超视图内的视图时,都应该保留视图的位置。如果您没有在原点上旋转任何视图,则应首先将视图的原点转换为超视图的原点,然后旋转然后再转换回原点。

  • 如果您要根据其超级视图旋转视图,请找到坐标,比如说(x,y)。
  • 将视图转换为原点;

    view.transform = CGAffineTransformMakeTranslation(x,y)

  • 以某个角度旋转视图,比如说PI,

    view.transform = CGAffineTransformMakeRotation(PI)

  • 旋转后转换回原点;

    view.transform = CGAffineTransformMakeTranslation(-x,-y)

就是这样。它应该适用于所有不同的轮换。

答案 2 :(得分:0)

更改影响UIView transform值的frame值。正如Apple所说:

  

警告:如果此属性不是标识转换,则为   frame属性未定义,因此应该被忽略。

Apple docs

因此,如果您使用框架属性移动或调整视图大小,请尝试使用boundscenter属性

执行此操作