[swift] Swift 애니메이션

Swift는 iOS 애플리케이션 개발에 많이 사용되는 프로그래밍 언어이며, 애니메이션을 적용하여 사용자에게 시각적 효과를 제공하는 것은 매우 중요합니다. 이번 포스트에서는 Swift에서 간단한 애니메이션을 어떻게 구현할 수 있는지 알아보겠습니다.

UIView 애니메이션

UIView는 iOS에서 애니메이션을 적용하기 위한 기본적인 클래스입니다. UIView를 사용하여 객체를 생성하고, 이를 통해 다양한 애니메이션 효과를 적용할 수 있습니다.

let view = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
view.backgroundColor = UIColor.red
self.view.addSubview(view)

UIView.animate(withDuration: 1.0, delay: 0.0, options: .curveEaseInOut, animations: {
    view.frame = CGRect(x: 100, y: 100, width: 200, height: 200)
}, completion: nil)

위의 예제 코드에서는 UIView.animate(withDuration:delay:options:animations:completion:) 메서드를 사용하여 애니메이션을 만들었습니다. 이 메서드는 애니메이션의 지속 시간, 딜레이, 애니메이션 옵션, 애니메이션 내용 등을 설정할 수 있습니다.

위의 코드에서는 빨간색 네모가 순차적으로 좌상단에서 우하단으로 이동하는 애니메이션을 만들었습니다.

Core Animation

Core Animation은 iOS에서 더 강력한 애니메이션을 구현하기 위해 사용되는 프레임워크입니다. Core Animation을 사용하면 좀 더 복잡한 애니메이션을 만들 수 있고, 레이어의 프로퍼티를 변경하여 애니메이션을 적용할 수 있습니다.

let layer = CALayer()
layer.backgroundColor = UIColor.red.cgColor
layer.frame = CGRect(x: 0, y: 0, width: 100, height: 100)
self.view.layer.addSublayer(layer)

let animation = CABasicAnimation(keyPath: "position")
animation.fromValue = NSValue(cgPoint: layer.position)
animation.toValue = NSValue(cgPoint: CGPoint(x: 200, y: 200))
animation.duration = 1.0
animation.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeInEaseOut)

layer.add(animation, forKey: "position")
layer.position = CGPoint(x: 200, y: 200)

위의 예제 코드에서는 CABasicAnimation 클래스를 사용하여 애니메이션을 만들었습니다. keyPath에는 애니메이션을 적용할 프로퍼티를 지정하고, fromValuetoValue를 통해 시작 값과 종료 값의 범위를 설정합니다. duration은 애니메이션의 지속 시간을 설정하는데 사용되며, timingFunction은 애니메이션의 타이밍 함수를 설정합니다.

위의 코드에서는 빨간색 네모가 좌상단에서 우하단으로 이동하는 애니메이션을 만들었습니다.

참고 자료

  1. UIView - Apple Developer Documentation
  2. Core Animation - Apple Developer Documentation