[swift] Swift Core Animation의 매트릭스 변환과 애니메이션

Core Animation은 iOS 및 macOS 애플리케이션에서 애니메이션을 생성하고 제어하는 데 사용되는 강력한 프레임워크입니다. 이는 뷰나 레이어의 속성을 변경하여 움직임, 크기 조정, 회전 등을 구현할 수 있습니다. 이러한 변환은 매트릭스 변환을 통해 이루어집니다.

매트릭스 변환은 2D 그래픽을 변환하여 이동, 회전, 크기 조정 등을 적용하는 데 사용되는 수학적 개념입니다. Core Animation에서는 CATransform3D 구조체를 사용하여 매트릭스 변환이 구현됩니다.

다음은 Core Animation을 사용하여 뷰를 회전하는 예제 코드입니다.

import UIKit

class ViewController: UIViewController {

    var rotationAngle: CGFloat = 0.0

    override func viewDidLoad() {
        super.viewDidLoad()

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

        let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleTap(_:)))
        squareView.addGestureRecognizer(tapGestureRecognizer)
    }

    @objc func handleTap(_ gestureRecognizer: UITapGestureRecognizer) {
        rotationAngle += CGFloat.pi/2

        UIView.animate(withDuration: 0.5) {
            self.squareView.transform = CGAffineTransform(rotationAngle: self.rotationAngle)
        }
    }
}

위의 코드는 뷰 컨트롤러에서 squareView를 생성하고 탭 제스처를 추가합니다. 탭 제스처가 감지되면 rotationAngle을 90도씩 증가시키고 UIView.animate(withDuration:animations:) 메서드를 사용하여 애니메이션을 실행합니다. 애니메이션 블록 내에서 squareViewtransform 속성을 CGAffineTransform을 사용하여 회전 시킵니다.

Core Animation의 매트릭스 변환 및 애니메이션에 대한 더 많은 정보를 찾으려면 아래의 참고 자료를 확인하세요.