2016-04-21 14 views
4

のは、私はそうのようなCGAffineTransformScaleを使用してUILabelを拡張しましょう:私は半分にUILabelを拡張したい場合スウィフトCGAffineTransformScale

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") 
}) 

は、これは素晴らしい作品。しかし、同じコードをもう一度呼び出すと、もう一度半分になるので0.25のスケールになります。

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

答えて

13

スウィフト3

text.transform = CGAffineTransform.identity 
UIView.animate(withDuration: 0.25, animations: { 
    self.text.transform = CGAffineTransform(scaleX: scale, y: scale) 
}) 
5

既存のトランスフォームを拡大縮小しています。

self.text.transform = CGAffineTransformMakeScale(scale, scale) 
+1

または 'CGAffineTransformScale(CGAffineTransformIdentity、スケール、スケール)'ただ、新しい変換を作成します – ozgur