从零到一学习CoreAnimation(3.转场动画)

先写出基本的东西
    @IBAction func leftBtnClick(sender: AnyObject) {
        index -= 1
        
        if (index == 0)
        {
            index = 9
        }
        let image = UIImage.init(named: "\(index).jpg")
        imageV.image = image
    }
    
    @IBAction func rightBtnClick(sender: AnyObject) {
        index+=1
        if (index == 10)
        {
            index = 1
        }
        let image = UIImage.init(named: "\(index).jpg")
        imageV.image = image
        
    }

设置了type=cube,subType= kCATransitionFromRight或者kCATransitionFromLeft,如果是cube的情况,默认是向上的

在其中我们设置一个 cube3d的效果,代码如下

   //写在leftBtnClick底部


        //2.设置转场动画效果
        transitionAnim.type = "cube"
        transitionAnim.subtype = kCATransitionFromRight
        //3.设置时间
        transitionAnim.duration = 0.4
        
        //添加动画到layer
        self.imageV.layer.addAnimation(transitionAnim, forKey: "23")
       //写在rightBtnClick底部
        
        //1.创建动画对象
        let transitionAnim = CATransition()
        
        
        //2.设置转场动画效果
        transitionAnim.type = "cube"
        transitionAnim.subtype = kCATransitionFromLeft
        
        //3.设置时间
        transitionAnim.duration = 0.4
        
        //添加动画到layer
        self.imageV.layer.addAnimation(transitionAnim, forKey: "23")

type的几种样式动画效果,可以通过swift的常量,或者是传递特定的字符串

/* Common transition types. */

//交叉淡化过度(不支持方向)
1.fade  或者 kCATransitionFade

//新的视图移到旧的视图上边去
2.moveIn 或者 kCATransitionMoveIn

//新的视图将过去的视图推出去
3.push 或者 kCATransitionPush

//将旧视图移开,显示下边的新视图
4.reveal 或者 kCATransitionReveal

//立方体翻滚效果
5.cube

//上下左右翻滚效果
6.oglFlip

//收缩效果,如一块布被抽走(不支持过度的方向)
7.suckEffect

//滴水效果(不支持方向)
8.rippleEffect

//向上翻页效果
9.pageCurl

//向下翻页效果
10.pageUnCurl
type = "pageCurl",刚才的方向代码没删除,还是左右的~
rippleEffect水滴效果

转场的方向,就是4个,上下左右


再说两个转场动画的两个属性
1.startProgress(动画起点,在整个动画的百分比)
2.endProgress(动画终点,在整个动画的百分比)
两者都是[0,1],默认是0,可以只设置一个,如果设置了两个,那么结束的一定要大约开始

上一页是startPro = 0,下一页是0.5的效果

结束的就不用讲了哈~

你可能感兴趣的:(从零到一学习CoreAnimation(3.转场动画))