상세 컨텐츠

본문 제목

Day 32. Project 6, part 1

TIL/#100DaysOfSwiftUI

by box-jeon 2020. 3. 17. 22:46

본문

https://www.hackingwithswift.com/100/swiftui/32

6번째 프로젝트는 바로 Animation입니다. 특별한 목적을 가진 앱을 만드는 건 아니고, 그냥 이것저것 시험해봤습니다.

Implicit Animations

Implicit animation을 구현하는 두 가지 방법이 소개되는데 그 중 첫번째는 View.animation() modifier를 통해서 animation을 설정하는 방법입니다. Animation triggering을 명시적으로 하진 않지만 해당 View가 state 변경으로 인해 다시 그려져야할 경우 알아서 동작합니다. 두번째는 Binder.animation() modifier를 통해서 animation을 설정하는 방법입니다. 아무래도 @State로 선언한 프로퍼티를 $를 이용해 바인딩하면 Binding이라는 struct로 감싸지는 모양입니다. 참 똑똑한 사람들이야... 무릎을 탁 치게 됩니다. 여튼 이 경우에는 해당 state가 바인딩된 View가 알아서 animating 합니다.

Explicit Animations

조건에 따라 암묵적으로 수행되는 대신 명시적으로 animation을 구현하는 방법이긴 합니다만... SwiftUI에서 View를 컨트롤할 방법은 state뿐입니다. 코드 내에서 state를 변경하는 부분을 withAnimation()에 closure로 넘기면 동작합니다. 글로벌 함수로 제공되고 있네요.

'our views always be a reflection fo our program state' 를 다시 한번 새기고 갑니다.

'TIL > #100DaysOfSwiftUI' 카테고리의 다른 글

Day 34. Project 6, part 3  (0) 2020.03.21
Day 33. Project 6, part 2  (0) 2020.03.19
Day 31. Project 5, part 3  (0) 2020.03.16
Day 30. Project 5, part 2  (0) 2020.03.15
Day 29. Project 5, part 1  (0) 2020.03.14

관련글 더보기

댓글 영역