尝试从左上角缩放视图



我有一个子视图控制器,其视图已添加为父视图上的子视图。我想从左上角的1.1倍缩放1.1倍。我尝试这样做:

override func viewDidLoad() {
    self.view.layer.anchorPoint = CGPoint(x: 0, y: 0)
}
func scaleMyView() {
    self.view.transform = CGAffineTransform(scaleX: 1.1, y: 1.1)
}

,但这似乎可以重新计入左上角的视图,然后扩展。

在这里阅读了一些答案之后,我尝试设置视图层的position这样的内容:

let center = self.view.frame.origin
self.view.layer.anchorPoint = CGPoint(x: 0, y: 0)
self.view.layer.position = center

但这将视图移至屏幕中心。我如何将其从左上角缩放而不在父视图中移动?

您完全正确并且非常接近。要更改锚定转换的位置,您需要更改图层的锚点。但是,当您这样做时,您需要更改图层的位置以补偿,否则将移动。

self.v是我们要转换的视图:

let lay = self.v.layer
let p = lay.frame.origin
lay.anchorPoint = CGPoint(x: 0, y: 0)
lay.position = p
lay.setAffineTransform(CGAffineTransform(scaleX: 1.1, y: 1.1))

最新更新