CATransition有趣动画过渡

swift的动画是做的很棒的 今天了解到CATransition,其动画有几种样式可以拿来使用,同时也可以自定义,感觉蛮不错的。

//
//  ViewController.swift
//  see cube
//
//  Created by Mengduan on 2023/7/11.
//

import UIKit

class ViewController: UIViewController {
    
    var swipeGesture = UISwipeGestureRecognizer()
    var num = 0
    
    lazy var guideView1:UIView = {
        let view = UIView(frame: self.view.frame)
        var guideView = UIImageView(frame: self.view.frame)
        guideView.isUserInteractionEnabled = true
        guideView.image = UIImage(named: "引导页1")
        guideView.layer.zPosition = 4
        view.addSubview(guideView)
      return view
    }()
    lazy var guideView2:UIView = {
        let view = UIView(frame: self.view.frame)
        var guideView = UIImageView(frame: self.view.frame)
        guideView.isUserInteractionEnabled = true
        guideView.image = UIImage(named: "引导页2")
        guideView.layer.zPosition = 4
        view.addSubview(guideView)
      return view
    }()
    

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        self.view.clipsToBounds = true
        self.view.addSubview(guideView1)
        self.view.addSubview(guideView2)
        
        self.swipeGesture = UISwipeGestureRecognizer(target: self, action: #selector(self.changePage))
        
        self.swipeGesture.direction = .left
        
        self.view.addGestureRecognizer(self.swipeGesture)
        
    }


}


extension ViewController{
    
    @objc func changePage(){
        let transition = CATransition()
        transition.duration = 2.0
        transition.type = .init(rawValue: "cube")
        transition.subtype = .fromRight
        self.view.layer.add(transition, forKey: nil)
        //MARK: 交换子视图 guideView1 和 guideView2 (子视图逻辑)
        self.view.exchangeSubview(at: 1, withSubviewAt: 0)
        
        if (num == 1){
            self.view.removeGestureRecognizer(swipeGesture)
            guideView1.removeFromSuperview()
            guideView2.removeFromSuperview()
            self.tabBarController?.tabBar.isHidden = false
        }else{
            num = 1
        }
    }
    
}

基本的有:

.fade 淡出

.moveIn 推进

.push 平移

.reveal 推出

尝试过 可用的有:

cube 方块

pageCurl 上翻页(翻书)

pageUnCurl 下翻页

oglFlip 上下翻转

参考:

iOS CATransition 自定义转场动画 - 简书

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值