swift-CATransiton的简单使用
2017-03-30 本文已影响147人
Coder东
//
// ViewController.swift
// Swift-使用CATranstion动画
//
// Created by 品德信息 on 2017/2/24.
// Copyright © 2017年 品德信息. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
//设置入场动画
override func viewDidLoad() {
super.viewDidLoad()
let rect = CGRect(x:0,y:64,width:320,height:200)
let imageView = UIImageView(frame:rect)
let image = UIImage(named: "girl")
imageView.image = image
// self.view.addSubview(imageView)
let animation = CATransition()
animation.duration = 2
animation.timingFunction = CAMediaTimingFunction(name:kCAMediaTimingFunctionEaseOut)
animation.type = kCATransitionPush
imageView.layer.add(animation,forKey:"Push")
//UIView动画块
let rect1 = CGRect(x:50,y:50,width:220,height:200)
let imageView1 = UIImageView(frame:rect1)
let image1 = UIImage(named:"one")
imageView1.image = image1
imageView1.tag = 1
// self.view.addSubview(imageView1)
let button = UIButton(type:UIButtonType.custom)
button.frame = CGRect(x:50,y:400,width:220,height:44)
button.backgroundColor = UIColor.lightGray
button.setTitle("Tap", for: UIControlState())
button.addTarget(self, action: #selector(ViewController.playAnimation), for: UIControlEvents.touchUpInside)
// self.view.addSubview(button)
//UIView的卷曲动画
let rect2 = CGRect(x:50,y:50,width:220,height:200)
let imageView2 = UIImageView(frame:rect2)
let image2 = UIImage(named:"girl")
imageView2.image = image2
// self.view.addSubview(imageView2)
imageView2.tag = 2
let button2 = UIButton(type:UIButtonType.system)
button2.frame = CGRect(x:50,y:400,width:200,height:44)
button2.backgroundColor = UIColor.lightGray
button2.setTitle("Tap", for: UIControlState())
button2.addTarget(self, action: #selector(ViewController.playAnimation), for: UIControlEvents.touchUpInside)
self.view.addSubview(button2)
//UIView 专场动画的制作 并 检测动画结束
self.viewAnimation3()
}
func viewAnimation3() {
let rect = CGRect(x:50,y:64,width:200,height:200)
let imageView = UIImageView(frame:rect)
let image = UIImage(named:"girl")
imageView.image = image
self.view.addSubview(imageView)
imageView.tag = 3
let button = UIButton(type:UIButtonType.system)
button.frame = CGRect(x:100,y:400,width:200,height:44)
button.backgroundColor = UIColor.lightGray
button.setTitle("Tap", for: UIControlState())
button.addTarget(self, action: #selector(ViewController.playAnimation), for: UIControlEvents.touchUpInside)
self.view.addSubview(button)
}
func playAnimation() {
UIView.beginAnimations(nil, context: nil)
UIView.setAnimationCurve(UIViewAnimationCurve.easeOut)
UIView.setAnimationDuration(5)
UIView.setAnimationBeginsFromCurrentState(true)
let view = self.view.viewWithTag(3)
UIView.setAnimationTransition(UIViewAnimationTransition.flipFromLeft, for: view!, cache: true)
view?.frame = CGRect(x:50,y:80,width:0,height:0)
UIView.setAnimationDelegate(self)
UIView.setAnimationDidStop(#selector(self.animationStop))
UIView.commitAnimations()
}
func animationStop() {
print("Animation stop")
self.view.viewWithTag(3)?.removeFromSuperview()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}