我有一个 UIView 应用了各种比例和旋转 CGAffineTransforms,以响应触摸屏手势。
当缩放操作完成时,我想将视图的边界调整为新的大小,然后让视图以 1.0 的比例重新绘制自身,同时保持变换的所有其他组件相同。
为了调整视图的边界,我使用:
self.myView.bounds = CGRectApplyAffineTransform(self.myView.bounds, self.myView.transform);
为了“撤消”比例变换,我正在尝试这个:
self.myView.transform = CGAffineTransformConcat(self.myView.transform, CGAffineTransformMakeScale(1, 1));
然后调用[myView setNeedsDisplay]
让视图重绘自身。
但是,这不会产生预期的结果,并且当应用旋转变换时,上面的代码似乎也会导致应用看起来像横向平移变换的东西。
什么是“撤消”仅缩放变换并以 1:1 重绘视图而所有其他变换保持不变的最简洁方法?