Swift CGAffineTransformScale到一个比例,而不是一个比例

sat*_*ikb 5 uilabel ios cgaffinetransformscale swift

假设我使用CGAffineTransformScale缩放UILabel,如下所示:

let scale = 0.5
text = UILabel(frame: CGRectMake(100, 100, 100, 100))
text.text = "Test"

UIView.animateWithDuration(2.0, delay: 0.0, options: UIViewAnimationOptions.CurveEaseIn, animations: {
    self.text.transform = CGAffineTransformScale(self.text.transform, scale, scale)
}, completion: {(value : Bool) in
    print("Animation finished")
})
Run Code Online (Sandbox Code Playgroud)

当我想将UILabel缩小一半时,这很有用.但是,如果我再次调用相同的代码,它将以0.25的比例结束,因为它再次缩放一半.

是否可以使用CGAffineTransformScale始终缩放到原始UILabel帧的一半大小,而不是累积缩放?

Dan*_*lea 15

斯威夫特3:

text.transform = CGAffineTransform.identity
UIView.animate(withDuration: 0.25, animations: {
   self.text.transform = CGAffineTransform(scaleX: scale, y: scale)
})
Run Code Online (Sandbox Code Playgroud)


rma*_*ddy 5

您正在扩展现有的转换.只需创建一个新的转换:

self.text.transform = CGAffineTransformMakeScale(scale, scale)
Run Code Online (Sandbox Code Playgroud)