将CALayer的旋转变换更改为一个值,而不更改图层的比例变换

问题描述 投票:0回答:1

假设您有一个CALayer子类作为视图层次结构的一部分,该子类是通过比例和旋转变换创建的,其中角度和比例仅在运行时定义,即:

let layer = CALayer()
layer.frame = CGRect(x: 10, y: 10, width: 100, height: 100)

//where xx and yy are some precomputed values
layer.transform = CATransform3DConcat(CATransform3DMakeScale(xx, xx, 1), 
                                      CATransform3DMakeRotation(yy, 0, 0, 1)) 

let view = UIView() //your view hierarchy
view.addSublayer(layer)

稍后在程序中,我想将此层旋转到特定角度。如何指定转换,以便

  • A)保留应用于图层的原始比例尺
  • B)应用于图层的原始旋转将被丢弃并重置为新值?
let angle = CGFloat.pi/3
layer.transform = ???
ios swift transform core-animation calayer
1个回答
1
投票
您可以在不更改xx值的情况下再次重新应用您的变​​换
© www.soinside.com 2019 - 2024. All rights reserved.