콘텐츠로 건너뛰기
Home » CoreAnimation

CoreAnimation

[iOS/OSX] 코어애니메이션 기본 개념

코어 애니메이션의 레이어

레이어 객체는 3차원 공간에 구성된 2차원 평면으로, 코어 애니메이션의 핵심이 되는 개념이다. 뷰와 비슷하게 레이어는 2차원 면의 기하학적 좌표정보, 콘텐츠, 시각적 속성등을 관리하게 된다. 하지만 뷰와는 달리 레이어는 그 스스로의 외양에 대해서는 정의하지 않는다. 레이어는 단지 비트맵을 둘러싸고 있는 상태 정보만을 관리한다. 이 비트맵은 뷰의 그려진 결과물이거나 지정한 비트맵 파일의 내용일 수 있다. 따라서 앱에서 사용하는 메인 레이어는 일종의 데이터 모델로 취급할 수 있으며 이러한 점은 애니메이션에 영향을 주는 것이므로 기억하고 넘어가야 한다.
더 보기 »[iOS/OSX] 코어애니메이션 기본 개념

코어 애니메이션 vs UIView 애니메이션

NSView와 그 계층구조의 애니메이션에서는 앱킷의 코어 애니메이션 통합을 사용할 수 있다. 즉 코코아의 NSView를 애니메이트하는 기술은 코어 애니메이션과 상당부분 결합되어 있다고 보면 된다. 이렇게 앱킷과 코어 애니메이션이 결합된 기술을 코코아 애니메이션으로 부른다. 스위치의 플립 효과와 같이 이미 애니메이션 효과를 지원하는 많은 컨트롤 들이 코코아 애니메이션을 통해서 코어 애니메이션을 사용하고 있다. 코코아 애니메이션 코어 애니메이션은 기존에 만들어진 UI를 쉽게 애니메이트하는 것을 1차적인 목표로 한다. 따라서 앱킷은 NSView의 계층구조에 대해 각각의 코어애니메이션 레이어(CALayer)를 그 이면에 가지고 있다. 이것이 활성화되면 뷰들은 컨텐츠를 자신의… 더 보기 »코어 애니메이션 vs UIView 애니메이션

코어애니메이션 시작하기

코어 애니메이션은 뷰의 콘텐츠의 기하학적 특성등을 이동, 확대/축소, 회전 등을 결합하여 변형하며 애니메이팅하는데 적합하다. 아래와 같이 궤도를 도는 원의 주위를 도는 더 작은 원과, 다시 그 작은 원 주위를 도는 가장 작은 원의 움직임을 코어 애니메이션으로 묘사해보자. 이 때 그려지는 이미지는 CAShapeLayer를 사용해서 패스를 통해 그릴 수도 있겠지만, 간단한 원이기 때문에 레이어의 모서리를 둥글려서 표현할 것이다. 그려지는 모든 궤도는 테두리로 그려지는 원과 원 위의 작은 원으로 구성된다. 그러한 궤도를 CALayer로 만들어주는 함수 orbit(with: color:)를 다음과 같이 작성할 수 있다. 기본적으로… 더 보기 »코어애니메이션 시작하기