[swift] Swift로 애니메이션을 이용한 화면 전환 구현하기

Swift는 iOS 애플리케이션을 개발하기 위한 강력한 프로그래밍 언어입니다. 이번에는 Swift를 사용하여 애니메이션을 적용한 화면 전환을 구현하는 방법에 대해 알아보겠습니다.

애니메이션 속성 설정

먼저 애니메이션을 구현하기 위해 필요한 애니메이션 속성을 설정해야 합니다. UIView의 확장을 사용하여 애니메이션에 필요한 속성을 추가할 수 있습니다. 다음의 코드를 이용하여 애니메이션 속성을 설정해 봅시다.

extension UIView {
    func fadeIn(duration: TimeInterval, delay: TimeInterval, completion: @escaping ((Bool) -> Void) = {(finished: Bool) -> Void in}) {
        self.alpha = 0
        UIView.animate(withDuration: duration, delay: delay, options: .curveEaseIn, animations: {
            self.alpha = 1
        }, completion: completion)
    }

    func fadeOut(duration: TimeInterval, delay: TimeInterval, completion: @escaping (Bool) -> Void = {(finished: Bool) -> Void in}) {
        self.alpha = 1
        UIView.animate(withDuration: duration, delay: delay, options: .curveEaseOut, animations: {
            self.alpha = 0
        }, completion: completion)
    }
}

위의 코드에서는 UIView를 확장하여 fadeInfadeOut 메소드를 구현했습니다. fadeIn 메소드는 뷰를 서서히 나타나게 하고, fadeOut 메소드는 뷰를 서서히 사라지게 합니다.

화면 전환 애니메이션 구현하기

이제 애니메이션 속성을 설정했으니, 실제로 화면 전환 애니메이션을 구현해 봅시다. 예를 들어 버튼이 있는 ViewController에서 다른 ViewController로 전환하는 애니메이션을 구현하는 방법을 알아보겠습니다.

@IBAction func buttonTapped(_ sender: UIButton) {
    // 전환할 ViewController를 생성
    let nextVC = NextViewController()

    // 전환 애니메이션 설정
    nextVC.modalPresentationStyle = .fullScreen
    nextVC.modalTransitionStyle = .crossDissolve

    // 현재 ViewController에서 전환 애니메이션 실행
    self.present(nextVC, animated: true, completion: nil)
}

위의 코드에서는 버튼을 탭했을 때 다음 ViewController로 전환하는 애니메이션을 구현하고 있습니다. NextViewController는 전환할 ViewController의 클래스명이며, modalPresentationStylemodalTransitionStyle 속성을 설정하여 전환 애니메이션의 스타일을 정의합니다. 마지막으로 present 메소드를 사용하여 현재 ViewController에서 전환 애니메이션을 실행합니다.

실행 결과 확인하기

애니메이션을 적용한 화면 전환을 확인하기 위해서는 실제 디바이스나 시뮬레이터에서 실행해야 합니다. 이렇게 코드를 실행하면, 화면 전환 애니메이션을 볼 수 있습니다.

결론

Swift를 사용하여 애니메이션을 이용한 화면 전환을 구현하는 방법에 대해 알아보았습니다. UIView를 확장하여 애니메이션 속성을 설정하고, present 메소드를 이용하여 전환 애니메이션을 실행할 수 있습니다. 애니메이션을 통해 애플리케이션의 사용자 경험을 향상시킬 수 있으니, 참고해보시기 바랍니다.

참고 자료