[swift] SwiftMessages에 사용자 정의 애니메이션 추가하기

SwiftMessages는 iOS에서 사용자에게 메시지를 표시하는 강력한 라이브러리입니다. 이 라이브러리에는 다양한 내장 애니메이션 효과가 제공되지만, 때로는 우리가 원하는 사용자 정의 애니메이션을 추가하고 싶을 수 있습니다. 이번 블로그 포스트에서는 SwiftMessages에 사용자 정의 애니메이션을 추가하는 방법에 대해 알아보겠습니다.

1. SwiftMessages 설치

먼저, SwiftMessages를 프로젝트에 설치해야 합니다.

dependencies:
  - package: SwiftMessages
    url: "https://github.com/SwiftKickMobile/SwiftMessages.git"
    from: "9.3.0"

2. 사용자 정의 애니메이션 클래스 작성

사용자 정의 애니메이션 클래스를 작성해야 합니다. 이 클래스는 SwiftMessagesMessageViewAnimation 프로토콜을 구현해야 합니다. 해당 프로토콜은 메시지를 표시하거나 숨기는 데 사용되는 애니메이션 메서드를 정의합니다.

import SwiftMessages

class CustomAnimation: MessageViewAnimation {
    func show(messageView: MessageView) {
        // 메시지를 표시할 경우 애니메이션 효과를 적용합니다.
        messageView.alpha = 0
        messageView.transform = CGAffineTransform(scaleX: 0.5, y: 0.5)
        UIView.animate(withDuration: 0.3) {
            messageView.alpha = 1
            messageView.transform = CGAffineTransform(scaleX: 1.0, y: 1.0)
        }
    }
    
    func hide(messageView: MessageView, completion: @escaping SwiftMessages.Completion) {
        // 메시지를 숨길 경우 애니메이션 효과를 적용합니다.
        UIView.animate(withDuration: 0.3, animations: {
            messageView.alpha = 0
            messageView.transform = CGAffineTransform(scaleX: 0.5, y: 0.5)
        }) { _ in
            completion()
        }
    }
}

위 코드에서는 show(messageView:)hide(messageView:completion:) 메서드에서 애니메이션 효과를 정의하고 있습니다. 메시지를 표시하기 위해 alpha 값을 조정하여 페이드인 애니메이션을 적용하고, transform 속성을 사용하여 크기 조정 애니메이션을 적용하고 있습니다.

3. SwiftMessages에 사용자 정의 애니메이션 적용하기

이제 앞서 작성한 사용자 정의 애니메이션 클래스를 SwiftMessages에 적용해보겠습니다.

import SwiftMessages

let view = MessageView.viewFromNib(layout: .cardView)
let config = SwiftMessages.Config()
config.presentationStyle = .center
config.duration = .seconds(seconds: 3)
config.presentationContext = .window(windowLevel: UIWindow.Level.normal)

let animator = CustomAnimation()
SwiftMessages.show(config: config, view: view, animator: animator)

위 코드에서는 CustomAnimation 클래스의 인스턴스를 animator 파라미터로 전달해 SwiftMessages를 통해 메시지를 보여줍니다. 이제 메시지가 표시될 때 우리가 정의한 사용자 정의 애니메이션이 적용됩니다.

결론

이번 블로그 포스트에서는 SwiftMessages에 사용자 정의 애니메이션을 추가하는 방법을 알아보았습니다. 사용자 정의 애니메이션을 통해 SwiftMessages의 기능을 더욱 확장할 수 있으며, 사용자 경험을 향상시킬 수 있습니다. SwiftMessages의 공식 문서와 예제를 참고하여 더 많은 기능을 사용해 보시기 바랍니다.