[swift] Swift Core Animation으로 뷰 크기 조정 애니메이션 만들기

이번에는 Swift Core Animation을 사용하여 뷰의 크기를 조정하는 애니메이션을 만들어보겠습니다. Core Animation은 iOS 및 macOS 애플리케이션에서 시각적 효과를 구현하기 위해 사용되는 강력한 프레임워크입니다.

애니메이션 준비

먼저, 애니메이션을 적용할 뷰를 생성하고 위치를 지정합니다.

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

크기 조정 애니메이션 만들기

다음으로, CABasicAnimation을 사용하여 뷰의 크기를 조정하는 애니메이션을 만들어보겠습니다.

let animation = CABasicAnimation(keyPath: "bounds.size")
animation.fromValue = NSValue(cgSize: CGSize(width: 100, height: 100))
animation.toValue = NSValue(cgSize: CGSize(width: 200, height: 200))
animation.duration = 1.0
view.layer.add(animation, forKey: "boundsAnimation")

위의 코드에서는 CABasicAnimation을 사용하여 bounds.size 속성에 대한 애니메이션을 생성합니다. fromValue는 애니메이션 시작 시 뷰의 크기, toValue는 애니메이션 종료 시 뷰의 크기를 설정합니다. duration은 애니메이션의 지속 시간입니다.

마지막으로, 생성한 애니메이션을 뷰의 레이어에 추가하여 애니메이션을 실행합니다.

애니메이션 실행

CATransaction.begin()
CATransaction.setCompletionBlock {
    // 애니메이션이 끝난 후 수행할 작업 처리
}
view.layer.bounds.size = CGSize(width: 200, height: 200)
CATransaction.commit()

위의 코드에서는 CATransaction을 사용하여 애니메이션 실행을 감싸고, setCompletionBlock을 사용하여 애니메이션이 종료된 후에 수행할 작업을 설정합니다. 애니메이션을 실행할 때는 view.layer.bounds.size를 원하는 크기로 설정해주면 됩니다.

결과 확인

위의 코드를 실행하여 뷰의 크기를 조정하는 애니메이션을 구현할 수 있습니다. 애니메이션이 실행되면 뷰의 크기가 부드럽게 변하는 것을 확인할 수 있습니다.

결론

이렇게 Swift Core Animation을 사용하여 뷰의 크기를 조정하는 애니메이션을 만들어보았습니다. Core Animation은 iOS 및 macOS 애플리케이션에서 다양한 시각적 효과를 구현할 수 있는 강력한 프레임워크이므로, 다양한 애니메이션 효과를 구현하고자 할 때 유용하게 활용할 수 있습니다.

참고 자료