TIL(Today I Learned)
7월 6일(화)
학습내용
- Array
- Array를 선언하고 순회하면서 값을 초기화하는 것과 Array(repeating:, count:)의 시간복잡도는 동일하다.
- UIBezierPath
- UIBezierPath로 모양을 만들고, 모양을 레이어에 추가하고, 레이어에 애니메이션을 추가함으로써 애니메이션을 만들 수 있다.
- currentPoint 프로퍼티를 기준점으로 하며, move(to:)를 통해 기준점을 변경할 수 있다.
- 기준점과 addLine(to:)의 입력하는 지점을 이어서 선을 추가한다. 그리고 선을 추가한 후 입력 지점이 기준점으로 업데이트 된다.
- CABasicAnimation
- CABasicAnimation(keyPath: “transform.scale.x”) 와 같이 keyPath를 지정해서 애니메이션을 정할 수 있다.
- fromValue, toValue, duration을 변경하여 애니메이션을 조절할 수 있다.
- CALayer의 add(_:forKey:)을 이용하여 애니메이션을 레이어에 추가한다.
- 복수의 애니메이션을 적용하고 싶을 경우, CAAnimationGroup()을 이용한다. animations에 애니메이션의 배열을 추가한다.
문제점/고민한점
- CABasicAnimation의 keyPath로 정해진 애니메이션 말고, 다른 애니메이션을 직접 만들 수는 없을까?
해결방법
- CAValueFunction을 이용하여 원하는 값을 변경하는 애니메이션을 만들 수도 있다고 한다.
참고
- CAValueFunction: https://developer.apple.com/documentation/quartzcore/cavaluefunction
- iOS Tutorial: Loading Animation: https://www.youtube.com/watch?v=sObS2eQAoE4&list=PLYBpLzrmzdNR_eN4s9xthaDP6HYEBeLaj&index=1&t=481s