我正在使用UIRotationGestureRecognizer旋转视图,但是当我想使用UISlider增大或减小视图大小时。我的视角首先设置为其初始状态,即正在增加或减小我的视角大小。我的要求是,在执行UISlider操作后,如果视图旋转了一定角度,它仍然旋转了。
我的旋转手势代码:
gesture.view.transform = CGAffineTransformRotate(gesture.view.transform, gesture.rotation);
gesture.rotation = 0.0;
我的UISlider代码
myView.transform = CGAffineTransformScale(CGAffineTransformIdentity, slider.value * 2, slider.value * 2);
答案 0 :(得分:0)
如果要保持旋转,则必须存储该CGAffineTransform,然后使用比例转换对其进行隐化。您可以为此使用CGAffineTransformConcat
(https://developer.apple.com/documentation/coregraphics/1455996-cgaffinetransformconcat?language=objc)。像这样:
CGAffineTransform scale = CGAffineTransformScale(CGAffineTransformIdentity, slider.value * 2, slider.value * 2);
myView.transform = CGAffineTransformConcat(savedRotationTransform, scale);
其中savedRotationTransform
是从另一步骤保存的CGAffineTransformRotate(gesture.view.transform, gesture.rotation);
。将整个内容封装在您的UIView
子类中可能会更容易。