如何让 CGAffineTransform Scale 围绕其中心缩小视图?

Posted

技术标签:

【中文标题】如何让 CGAffineTransform Scale 围绕其中心缩小视图?【英文标题】:How do I get a CGAffineTransformMakeScale to shrink a view around its center? 【发布时间】:2010-05-03 21:39:34 【问题描述】:

这应该很简单——当我在UIView 上使用CGAffineTransformMakeScalewidth = 0.5height = 0.5 时,它会缩小到左上角。我需要它围绕它的中心收缩。

我怎样才能做到这一点?

【问题讨论】:

【参考方案1】:

如果您遇到相同的行为,请务必关闭自动布局!

【讨论】:

【参考方案2】:

啊哈,想通了。我正在做一些自定义绘图并且混淆了框架和边界。

【讨论】:

您好,您可以扩展您的回答/问题吗?这个问题在谷歌上排名很高。全世界都在注视着;) 在设置新变换之前保存中心,然后在完成后重新设置中心。【参考方案3】:

默认情况下,CGAffineTransformMakeScale 围绕 UIView 的中心缩放。

例如:

[UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationCurveEaseInOut animations:^
    self.myView.transform = CGAffineTransformMakeScale(2, 2);
  completion:nil ]; 

.. 将使 myView 的大小增加一倍,并围绕其中心缩放。

【讨论】:

以上是关于如何让 CGAffineTransform Scale 围绕其中心缩小视图?的主要内容,如果未能解决你的问题,请参考以下文章

我如何使用 CGAffineTransform 进行正确的拖放

如何理解CGAffineTransform

CGAffineTransform 在其他视图上

如何使用 CGAffineTransform Scale 从右到左添加动画和放大动画

定义 SnapKit 值时,CGAffineTransform 旋转会导致宽度和高度之间的切换

iphone sdk CGAffineTransform 获取对象的旋转角度