我一直在使用CGAffineTransformMakeScale来扩展UIView。这可以通过它的默认anchorPoint进行扩展,它是(.5,.5) - 中心。我想缩放它以使它向左伸展,就好像它向左侧缩放一样。我可以通过将anchorPoint设置为正确的中心来实现此目的。但是,这会导致设置框架等问题。是否有更好的方法来应用我想要的比例变换。我想我可以使用自定义变换矩阵来完成它,但我对矩阵数学并不好。
答案 0 :(得分:3)
使用anchorPoint,绕过框架怪异只是存储并重新加载它this answer。
答案 1 :(得分:0)
首先运行此代码,您将更好地理解。这里lblLabel是我的标签,你可以相应改变。还检查CGPoint(x:10,y:98)和CGPoint(x:10,y:108)作为参数>你的要求。 这将从标签的左上角动画。根据您的要求更改定位点和位置。
self.lblLabel.layer.anchorPoint = CGPoint(x: 0.0,y :0.0)
self.lblLabel.layer.position = CGPoint(x: 10, y: 98)
lblLabel.transform = CGAffineTransform(scaleX: 0.5, y: 0.5)
UIView.animate(withDuration: 1.0) {
self.lblLabel.layer.position = CGPoint(x: 10, y: 108)
self.lblLabel.transform = CGAffineTransform(scaleX: 1.2, y: 1.2)
}