TIL(Today I Learned)
4월 1일(목)
학습내용
- Core Animation
- View는 최소 1개의 Layer를 갖고 있다.
- Core Animation은 Layer를 이용하여 애니메이션을 나타낸다.
- 애니메이션은 두가지 Layer가 있는데, Model Layer은 실제 위치, Presentation Layer 애니메이션이 되는 궤적을 나타낸다.
- layer의 position 프로퍼티를 특정 좌표로 설정함으로써 Model Layer(실제 위치)를 변경할 수 있다.
- animation의 keyPath는 애니메이션이 작동하는 동안에 바꾸고 싶은 속성을 문자열로 초기화하고, fromValue는 속성의 시작값, toValue는 속성의 마지막값, duration은 애니메이션 진행 시간을 저장하는 프로퍼티이다.
- animation.fillMode, isRemovedOnCompletion을 이용하여 애니메이션이 작동할때 발생하는 반복처리들을 줄여서 성능을 향상시키려 할때 사용하는 프로퍼티이다.
- animation.isAdditive는 절대적인 값을 변경하는게 아닌, 상대적으로 값을 더하고 싶을때 사용하는 프로퍼티이다.
- CABasicAnimation, CAKeyframeAnimation 등의 애니메이션 클래스가 있다.
- 애니메이션이 작동하면서 Layer의 위치가 변한 것 처럼 보여도 실제 뷰의 위치는 변하지 않는다.
- UIImageView는 GIF를 지원하지 않는다.
문제점/고민한점
- UIView Animation(UIViewPropertyAnimator)과 Core Animation의 차이는?
해결방법
- UIView Animation(UIViewPropertyAnimator)는 View의 Property 값에 대한 애니메이션이고, Core Animation은 Layer의 Property 값에 대한 애니메이션이다.
참고
https://www.objc.io/issues/12-animations/animations-explained/