变换后的更新点

185*_*.41 0 cgaffinetransform cgpoint ios swift

我正在尝试使用更改视图位置,CGAffineTransform但转换语句不会影响它。

例如,让我们调用移动的视图movingView

一开始,movingView是在点CGPoint(x: 100, y: 100) 然后我移动movingView通过这样的代码:

movingView.transform = CGAffineTransform(translationX: 100, y: 300)
Run Code Online (Sandbox Code Playgroud)

现在如果我这样做 : print(movingView.layer.position),我仍然得到

CGPoint(x: 100, y:100)

代替

CGPoint(x: 200, y: 400)

Dav*_*ist 5

对视图(或图层)应用变换不会更新其中心位置(或位置)。它会改变视图(或层)在屏幕上的显示方式和位置,但不会改变其center、(或position)或bounds属性的值。

如果您想知道点如何受到平移的影响,则可以通过对其应用变换来计算新点:

let point = CGPoint(x: 100, y: 200)
let transform = CGAffineTransform(translationX: 20, y: 40)
let transformedPoint = point.applying(transform) // x: 120, y: 240
Run Code Online (Sandbox Code Playgroud)