[swift] SnapKit으로 화면 전환 애니메이션 설정하기

화면 전환 애니메이션은 앱의 사용자 경험에 매우 중요한 부분입니다. SnapKit은 iOS 개발자들이 화면 전환 애니메이션을 손쉽게 구현할 수 있도록 도와주는 강력한 라이브러리입니다. 이번 포스트에서는 SnapKit을 사용하여 화면 전환 애니메이션을 설정하는 방법을 알아보겠습니다.

먼저, UIViewController 클래스를 상속받은 두 개의 화면(ViewControllerA, ViewControllerB)이 있다고 가정해보겠습니다. ViewControllerA에서 ViewControllerB로 화면을 전환하는 애니메이션을 설정해보도록 하겠습니다.

먼저, ViewControllerA에서 ViewControllerB로 전환하는 버튼을 추가해야 합니다. 이 버튼을 탭했을 때 화면이 전환되도록 코드를 작성해보겠습니다.

import UIKit
import SnapKit

class ViewControllerA: UIViewController {
    let transitionButton = UIButton()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        transitionButton.setTitle("Go to ViewControllerB", for: .normal)
        transitionButton.addTarget(self, action: #selector(transitionButtonTapped), for: .touchUpInside)
        
        view.addSubview(transitionButton)
        
        transitionButton.snp.makeConstraints { make in
            make.center.equalToSuperview()
            make.width.equalTo(200)
            make.height.equalTo(50)
        }
    }
    
    @objc func transitionButtonTapped() {
        let viewControllerB = ViewControllerB()
        
        viewControllerB.modalTransitionStyle = .crossDissolve
        viewControllerB.modalPresentationStyle = .fullScreen
        
        present(viewControllerB, animated: true, completion: nil)
    }
}

ViewControllerA에서는 transitionButton이라는 버튼을 생성하고, ViewControllerB로 전환하는 애니메이션을 설정하는 transitionButtonTapped() 메소드를 구현합니다. 탭 이벤트가 발생하면 ViewControllerB의 인스턴스를 생성하고, modalTransitionStylemodalPresentationStyle을 설정하여 화면 전환 애니메이션을 구현합니다. 마지막으로 present() 메소드를 사용하여 화면을 전환합니다.

ViewControllerB에서는 간단하게 뷰를 구성하는 코드만 작성하겠습니다.

import UIKit
import SnapKit

class ViewControllerB: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        
        view.backgroundColor = .white
    }
}

이제 ViewControllerA에서 ViewControllerB로 전환하는 애니메이션이 적용된 버튼을 탭해보세요. 화면이 깜박거리며 전환되는 애니메이션을 확인할 수 있습니다.

결론

SnapKit은 iOS 앱의 화면 전환 애니메이션 구현을 지원하는 강력한 라이브러리입니다. 이번 포스트에서는 SnapKit을 사용하여 화면 전환 애니메이션을 설정하는 방법을 알아보았습니다. SnapKit을 활용하여 사용자에게 좋은 사용자 경험을 제공하는 앱을 개발해보세요.