6

次のように 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")
})

これは、UILabel を半分に拡大したいときにうまく機能します。しかし、この同じコードをもう一度呼び出すと、スケールが 0.25 になり、再び半分にスケ​​ーリングされます。

CGAffineTransformScale を使用して、累積的にスケーリングするのではなく、常に元の UILabel フレームの半分のサイズにスケーリングすることは可能でしょうか?

4

3 に答える 3

5

既存の変換をスケーリングしています。新しい変換を作成するだけです:

self.text.transform = CGAffineTransformMakeScale(scale, scale)
于 2016-04-21T22:04:36.140 に答える