[ios] Animatable Properties
안녕하세요. 지난 포스팅에서 alpha의 값은 애니매이션 효과를 주기 위해서는 따로 layoutIfNeeded
는 호출해주지 않아도 된다고 소개를 하였습니다. 그 이유로 alpha 속성은 built-in animation 속성 중 하나라고 했습니다. 오늘은 그 built-in animation과 관련한 Animatable Properties에 대해 공부해보는 시간을 갖도록 하겠습니다.
이번 포스팅은 공식 문서를 제가 이해한대로 번역하여 옮기는 방식으로 보다 자세한 내용은 공식 문서를 참고해주세요. Animations
오늘은 지난 포스팅에 연장선이기 때문에 반드시 해당 포스팅을 먼저 보시고 읽어주시기 바랍니다.
Animations
iOS에서 애니매이션은 View의 위치, 사이즈를 바꾸거나 View의 계층에서 뺀다던지 숨긴다던지 하는 행위를 할 때 광범위하게 사용됩니다. 이를 통해 사용자에게 여러 시각적으로 흥미로운 효과를 제공할 수 있습니다.
iOS에서는 정교한 애니매이션을 구현하기 위해 많은 코드를 작성할 필요가 없습니다. Core Animation이 제공하는 built-in animation을 사용하면 복잡한 코드를 작성할 필요 없이 짧은 코드로 정교한 애니매이션을 구현할 수 있습니다. 그렇다면 무엇에 애니매이션 효과를 줄 수 있을까요?
What Can Be Animated?
UIKit과 Core Animation 둘 모두 애니매이션 효과를 지원하지만 지원하는 수준은 서로 다릅니다. UIKit에서는 UIView
의 객체를 활용하여 애니매이션을 구현할 수 있습니다. UIView
객체는 각각의 View의 property를 변경하거나 뷰를 다른 뷰로 교체하는 등의 간단하고 흔한 애니매이션 작업들은 지원합니다.
다음의 항목은 기본으로 애니매이션 효과가 내장되어 있는 UIView
클래스의 Animatable properties입니다. UIView
의 속성이기 때문에 객체에서 바로 접근이 가능합니다.
frame
bounds
center
transform
alpha
backgroundColor
contentStretch
Animatable의 의미는 자동으로 애니매이션 효과가 일어난다는 의미가 아닙니다. 기본적으로 위의 속성들에 새로운 값을 할당해주면 그 즉시 반영되고 애니매이션 효과는 나타나지 않습니다. 애니매이션 효과를 보기 위해서는 다음과 같이 animation 블록 안에서 값을 변경해주어야 합니다.