Más contenido relacionado
Similar a Swift Study Vol.4 (20)
Swift Study Vol.4
- 11. Example
// あらかじめ変化前の状態を設定しておく (from)
// 100 x 100 のビューを生成
var _animationView:UIView! = UIView(frame: CGRectMake(0, 0, 100, 100))
// ビューの色を青に設定
_animationView.backgroundColor = UIColor.blueColor()
self.view.addSubview(_animationView)
// アニメーション
UIView.animateWithDuration(1.0, animations: { () -> Void in
// ここにアニメーションの変化後の状態を設定する (to)
// 200x200のサイズにアニメーションさせる
_animationView.frame.size = CGSizeMake(200, 200)
}){ (isTrue) -> Void in
- 12. 拡大・縮小
// 100 x 100 のビューを生成
var _animationView:UIView! = UIView(frame: CGRectMake(0, 0, 100, 100))
// ビューの色を青に設定
_animationView.backgroundColor = UIColor.blueColor()
self.view.addSubview(_animationView)
// アニメーション
UIView.animateWithDuration(1.0, animations: { () -> Void in
// 横幅を2倍に設定
_animationView.frame.size.width = 200
// 高さを2倍に設定
_animationView.frame.size.height = 200
}){ (isTrue) -> Void in
// アニメーションビューの初期化
- 14. 消失
// 100 x 100 のビューを生成
var _animationView:UIView! = UIView(frame: CGRectMake(0, 0, 100, 100))
// ビューの色を青に設定
_animationView.backgroundColor = UIColor.blueColor()
self.view.addSubview(_animationView)
// アニメーション
UIView.animateWithDuration(1.0, animations: { () -> Void in
// ビューを透明に
_animationView.alpha = 0.0
}){ (isTrue) -> Void in
// アニメーションビューの初期化
// 親ビューからビューを削除 (add <-> remove)
_animationView.removeFromSuperview()
- 16. 移動
// 100 x 100 のビューを生成
var _animationView:UIView! = UIView(frame: CGRectMake(0, 0, 100, 100))
// ビューの色を青に設定
_animationView.backgroundColor = UIColor.blueColor()
self.view.addSubview(_animationView)
// アニメーション
UIView.animateWithDuration(1.0, animations: { () -> Void in
// ビューを左端から右端に移動
var dx = self.view.frame.width - animationAreaWidth
_animationView.frame.origin = CGPointMake(dx, 0)
}){ (isTrue) -> Void in
// アニメーションビューの初期化
self.configureAnimationView()
- 19. 回転
// アニメーション
UIView.animateWithDuration(1.0, animations: { () -> Void in
// 180度回転するtransformの生成// 180度回転するtransformの生成
// * 回転角度(radian)を生成する関数(120度の場合): self.DegreesToRadians(120)
// * RotateTransformの生成: CGAffineTransformMakeRotation(radian)
var radian = self.DegreesToRadians(180.0)
var transform = CGAffineTransformMakeRotation(radian)
// animationViewにtransformを設定
self.animationView.transform = transform
}){ (isTrue) -> Void in
// アニメーションビューの初期化
self.configureAnimationView()
}
ラジアン
func DegreesToRadians(var degree:Double) -> CGFloat
{
return CGFloat(degree * M_PI / 180.0)
}
- 25. Example
例えば、ビューの角丸サイズを変える
アニメーションはこのような感じです。
// cornerRadiusを変更するアニメーション
var cornerRadiusAnimation = CABasicAnimation(keyPath: "cornerRadius")
// cornerRadius を 0 -> 100 に変化させるよう設定
cornerRadiusAnimation.fromValue = 0
cornerRadiusAnimation.toValue = 100
// アニメーション
cornerRadiusAnimation.duration = 2.0
// アニメーションが終了した時の状態を維持する
cornerRadiusAnimation.removedOnCompletion = false
cornerRadiusAnimation.fillMode = kCAFillModeForwards
// アニメーションが終了したらanimationDidStopを呼び出す
cornerRadiusAnimation.delegate = self