Swift - 使用CATransition制作過(guò)渡動(dòng)畫(頁(yè)面切換轉(zhuǎn)場(chǎng)效果)

CATransition 動(dòng)畫主要在過(guò)渡時(shí)使用,比如兩個(gè)頁(yè)面層級(jí)改變的時(shí)候添加一個(gè)轉(zhuǎn)場(chǎng)效果。CATransition 分為兩類,一類是公開的動(dòng)畫效果,一類是非公開的動(dòng)畫效果。
1、公開動(dòng)畫效果(CATransitionType):

  • .fade:翻頁(yè)
  • .moveIn:彈出
  • .push:推出
  • .reveal:移除

2、非公開動(dòng)畫效果:

  • "cube":立方體
  • "suckEffect":吸收
  • "oglFlip":翻轉(zhuǎn)
  • "rippleEffect":波紋
  • "pageCurl":卷頁(yè)
  • "cameraIrisHollowOpen":鏡頭開
  • "cameraIrisHollowClose":鏡頭關(guān)

3、動(dòng)畫方向類型(CATransitionSubtype):

  • .fromRight:從右側(cè)開始實(shí)現(xiàn)過(guò)渡動(dòng)畫
  • .fromLeft:從左側(cè)開始實(shí)現(xiàn)過(guò)渡動(dòng)畫
  • .fromTop:從頂部開始實(shí)現(xiàn)過(guò)渡動(dòng)畫
  • .fromBottom:從底部開始實(shí)現(xiàn)過(guò)渡動(dòng)畫

4、下面通過(guò)一個(gè)樣例演示:
頁(yè)面上添加兩個(gè)分別是紅色,藍(lán)色的 UIView。當(dāng)點(diǎn)擊屏幕的時(shí)候,這兩個(gè) UIView 層級(jí)切換,同時(shí)會(huì)有從左向右推出的效果。
代碼:

import UIKit
 
class ViewController: UIViewController {
     
    override func viewDidLoad() {
        super.viewDidLoad()
         
        let redView:UIView = UIView(frame: CGRect(x:20, y:20, width:280, height:400))
        redView.backgroundColor = UIColor.red
        self.view.insertSubview(redView, at: 0)
         
        let blueView:UIView = UIView(frame: CGRect(x:20, y:20, width: 280, height:400))
        blueView.backgroundColor = UIColor.blue
        self.view.insertSubview(blueView, at: 1)
    }
     
    //點(diǎn)擊切換兩個(gè)紅藍(lán)視圖
    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        let transition = CATransition()
        transition.duration = 3.0
        transition.type = kCATransitionPush //推送類型
        transition.subtype = kCATransitionFromLeft //從左側(cè)
        self.view.exchangeSubview(at: 1, withSubviewAt: 0)
        self.view.layer.add(transition, forKey: nil)
    }
     
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

原文出自:www.hangge.com

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容