gpt4 book ai didi

ios - 为什么 CALayer 的 "transform.scale"值与其变换比例不匹配?

转载 作者:行者123 更新时间:2023-11-28 23:27:23 24 4
gpt4 key购买 nike

想象一下,您正在尝试缩放一个图层,然后再读出该缩放比例(例如:在一个正在改变比例的动画期间)。

let desiredScale = 0.5
layer.transform = CATransform3DMakeScale(desiredScale, desiredScale, 1)
let readScale = layer.value(forKeyPath: "transform.scale") as? Double
print("scale: \(readScale)") // "scale: 0.6666666"

使用value(forKeyPath:)读出的刻度值会很接近但不太正确!

最佳答案

这可能是因为读出的值与整个 3D 比例有关(考虑 x、y 和 z)。专门读取 x 或 y 刻度将返回正确的值:

let desiredScale = 0.5
layer.transform = CATransform3DMakeScale(desiredScale, desiredScale, 1)
let wholeScale = layer.value(forKeyPath: "transform.scale") as? Double
let xScale = layer.value(forKeyPath: "transform.scale.x") as? Double
print("scale: \(wholeScale)") // "scale: 0.6666666"
print("scale: \(xScale)") // "scale: 0.5"

关于ios - 为什么 CALayer 的 "transform.scale"值与其变换比例不匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58201906/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com