Swift 3 中的 CGAffineTransformConCat/ CGAffineTransformMakeScale
CGAffineTransformConCat/ CGAffineTransformMakeScale in Swift 3
我正在尝试为 swift 3:
更新函数的一部分
let newLabelOffset = CGFloat(direction.rawValue) * originalFrame.size.height/2
newLabel.transform = CGAffineTransformConCat(
CGAffineTransformMakeScale(1,0)
CGAffineTransformMakeTranslation(0,newLabelOffset)
)
我听说使用 CGAffineTransformConCat
的新方法是 concatenating(_:)
但不完全确定如何根据上述 2 个转换进行设置。
初始化转换,
let trans1 = CGAffineTransform(scaleX: 0, y: 0)
let trans2 = CGAffineTransform(translationX: 0,y: 1)
连接,
trans1.concatenating(trans2)
在swift中,函数是可重载的。所有包含平移、缩放、旋转的矩阵变换由函数 CGAffineTransform()
使用不同的参数实现。
init(rotationAngle: CGFloat) // rotate
init(scaleX: CGFloat, y: CGFloat) // scale
init(translationX: CGFloat, y: CGFloat) // translation
func concatenating(CGAffineTransform) -> CGAffineTransform // matrix multiplication
甚至,你完全可以用init(a: CGFloat, b: CGFloat, c: CGFloat, d: CGFloat, tx: CGFloat, ty: CGFloat)
来定义变换矩阵,矩阵的构造是:
我正在尝试为 swift 3:
更新函数的一部分 let newLabelOffset = CGFloat(direction.rawValue) * originalFrame.size.height/2
newLabel.transform = CGAffineTransformConCat(
CGAffineTransformMakeScale(1,0)
CGAffineTransformMakeTranslation(0,newLabelOffset)
)
我听说使用 CGAffineTransformConCat
的新方法是 concatenating(_:)
但不完全确定如何根据上述 2 个转换进行设置。
初始化转换,
let trans1 = CGAffineTransform(scaleX: 0, y: 0)
let trans2 = CGAffineTransform(translationX: 0,y: 1)
连接,
trans1.concatenating(trans2)
在swift中,函数是可重载的。所有包含平移、缩放、旋转的矩阵变换由函数 CGAffineTransform()
使用不同的参数实现。
init(rotationAngle: CGFloat) // rotate
init(scaleX: CGFloat, y: CGFloat) // scale
init(translationX: CGFloat, y: CGFloat) // translation
func concatenating(CGAffineTransform) -> CGAffineTransform // matrix multiplication
甚至,你完全可以用init(a: CGFloat, b: CGFloat, c: CGFloat, d: CGFloat, tx: CGFloat, ty: CGFloat)
来定义变换矩阵,矩阵的构造是: