[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:)
메서드를 사용하여 애니메이션을 실행합니다. 애니메이션 블록 내에서 squareView
의 transform
속성을 CGAffineTransform
을 사용하여 회전 시킵니다.
Core Animation의 매트릭스 변환 및 애니메이션에 대한 더 많은 정보를 찾으려면 아래의 참고 자료를 확인하세요.
- Core Animation Programming Guide
- UIView Animations
- Understanding CGAffineTransform in Core Animation