我在滑块值上旋转图像 -
我正在使用此代码进行轮换-
editingView.transform = CGAffineTransformRotate(editingView.transform,sliderVal);
它旋转正确,但如果我在旋转后尝试移动或调整大小,editingView 正在调整大小,出现意外行为,视图从屏幕上消失。
请告诉我我做错了什么。
我在滑块值上旋转图像 -
我正在使用此代码进行轮换-
editingView.transform = CGAffineTransformRotate(editingView.transform,sliderVal);
它旋转正确,但如果我在旋转后尝试移动或调整大小,editingView 正在调整大小,出现意外行为,视图从屏幕上消失。
请告诉我我做错了什么。
看看这个问题。
由于您没有显示任何有关如何进行移动或调整大小的代码,我怀疑您没有正确连接转换。此外,在您进行旋转之后,平移可能会在旋转的坐标系上起作用,因此会导致意外行为。
好吧,每当您旋转超级视图内的视图时,您都应该保留视图的位置。如果您没有在原点上旋转任何视图,则应首先将视图的原点转换为父视图的原点,然后旋转,然后再次转换回原点。
将视图转换为原点;
view.transform = CGAffineTransformMakeTranslation(x,y)
将视图旋转某个角度,例如 PI,
view.transform = CGAffineTransformMakeRotation(PI)
旋转后平移回原点为;
view.transform = CGAffineTransformMakeTranslation(-x,-y)
就是这样。它应该适用于所有不同的旋转。
更改transform
影响frame
UIView 值的值。正如苹果所说:
警告:如果此属性不是恒等变换,则 frame 属性的值未定义,因此应被忽略。
因此,如果您使用 frame 属性移动或调整视图大小,请尝试使用bounds
,center
属性执行此操作