美文网首页iOS Developer - AnimationCore AnimationiOS Developer
从零到一学习CoreAnimation(3.转场动画)

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

作者: mkb2 | 来源:发表于2016-08-28 12:19 被阅读65次
    先写出基本的东西
        @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.转场动画)

        本文链接:https://www.haomeiwen.com/subject/lsitettx.html