【发布时间】:2014-09-23 16:55:33
【问题描述】:
我有一个 UIView,当它被触摸时我会缩小它,而当触摸结束或取消时我会放大它。
我一直在这样缩放视图
缩小:
CGAffineTransform transform = CGAffineTransformMakeScale(0.95, 0.95);
self.transform = transform;
缩放:
CGAffineTransform transform = CGAffineTransformMakeScale(1.0, 1.0);
self.transform = transform;
这不会保留任何其他转换。我知道我可以使用它来保留旧的转换:
缩小:
CGAffineTransform transform = CGAffineTransformScale(self.transform, 0.95, 0.95);
self.transform = transform;
缩放:
CGAffineTransform transform = CGAffineTransformScale(self.transform, 1.0, 1.0);
self.transform = transform;
当然,这里的放大没有效果——另外还有可能应用累积的缩小动画。基本上我想要一种绝对应用比例变换而不影响任何其他变换的方法。有没有办法做到这一点?我不认为使用 1.0/0.95 作为放大系数,因为视图可能会在一次被取消或结束之前收到两次触摸。
我想我问的问题和这个问题一样:Applying just the scale component of a CGAffineTransform to a UIView,但我认为这里的答案对我不起作用。
我的目标是 iOS 7 及更高版本。
【问题讨论】:
-
'当然在这里放大没有效果。'请您详细说明一下吗?
-
该行将当前比例乘以 1,因此它什么也不做。
标签: ios uiview core-graphics quartz-2d