puuurm / swift-weatherforecast

iOS app
1 stars 0 forks source link

Rain Effect #44

Closed puuurm closed 6 years ago

puuurm commented 6 years ago

고민거리: 비가 위에서 아래로 떨어지게 하려면 애니메이션이 필요하다. 하지만 iOS에서 애니메이션을 구현할 수 있는 방법이 여러 개라서 무엇을 사용해야 할지 고민되었다.

해결: 알아본 결과 Sprite kit 제외하고 CABasicAnimation, CAEmitterLayer, UIDynamicAnimator + UIGravityBehavior 세가지 방법을 통해 구현 가능하다. 이 중 내가 선택한 방법은 CAGradientLayer로 비 모양을 만들고, CABasicAnimation를 적용하는 것이다. 이유는 CAEmitterLayer, UIDynamicAnimator는 뷰를 타겟으로 애니메이션을 발생시키지만, CABasicAnimation은 layer를 타겟으로 애니메이션을 발생시킨다. 비 효과는 반복하며 이벤트 대상(물방울)의 수가 많으므로(num>=1000) UIImageView를 생성해 이미지 리소스를 생성하여 할당하는 것보다 물방을 layer를 만들고 애니메이션을 추가하는 것이 성능에 더 효과적일 것이라고 판단하였다.