Jimmy's iOS

iOS) CATransition 을 사용하여 뷰 컨트롤러 fade in , fade out 시키기 본문

iOS

iOS) CATransition 을 사용하여 뷰 컨트롤러 fade in , fade out 시키기

Jimmy Youn 2021. 7. 19. 02:38

화면 이동 시 전 viewController 는 희미해지면서 새로운 viewController 가 나오도록 구현을 하고 싶었다. 처음에는 기존 modalTransitionStyle 의 crossDissolve 의 속성을 사용하려 했으나 이 속성은 너무 빨리 화면이 교차가 되었다. 다른 기능을 찾아보다가 CATransition() 속성을 사용해서 내가 원하는 fade 기능을 쓸 수 있다는 걸 알게되었다. 

 

func giveFadeFunctions () {
  let transition = CATransition() 
  transition.duration = 0.65
  transition.timingFunction = CAMediaTimingFunction(name : kCAMediaTimingFunctionEaseOut)
  transition.type = kCATransitionFade
  
  navigationController?.view.layer.add(transition, forKey : nil)
}

@objc func moveToSecondViewController() {
  let nextVC = SecondViewController()
  nextVC.modalPresentationStyle = .fullScreen
  giveFadeFunctions()
  navigationController?.pushViewController(nextVC, animated : false)
 }