【发布时间】:2013-07-17 14:11:22
【问题描述】:
我有一个 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 重绘视图而所有其他变换保持不变的最简洁方法?
【问题讨论】:
标签: ios uiview uikit cgaffinetransform