1

我在滑块值上旋转图像 -

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

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

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

请告诉我我做错了什么。

4

3 回答 3

0

看看这个问题

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

于 2013-04-16T11:57:39.643 回答
0

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

  • 如果要相对于其父视图旋转视图,请找到坐标,例如 (x,y)。
  • 将视图转换为原点;

    view.transform = CGAffineTransformMakeTranslation(x,y)

  • 将视图旋转某个角度,例如 PI,

    view.transform = CGAffineTransformMakeRotation(PI)

  • 旋转后平移回原点为;

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

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

于 2013-04-16T12:05:04.513 回答
0

更改transform影响frameUIView 值的值。正如苹果所说:

警告:如果此属性不是恒等变换,则 frame 属性的值未定义,因此应被忽略。

苹果文档

因此,如果您使用 frame 属性移动或调整视图大小,请尝试使用bounds,center属性执行此操作

于 2013-04-16T12:06:25.760 回答