일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Realm
- MacOS
- rxswift
- Notification
- Archive
- UIButton
- 이미지
- error
- mac
- Code
- Git
- 한글
- IOS
- Session
- darkmode
- Firebase
- geofencing
- SwiftUI
- appstore
- 개발자
- JPA
- iOS16
- view
- 웹뷰
- FLUTTER
- Swift
- Apple
- Xcode
- window
- github
- Today
- Total
목록애니메이션 (2)
EEYatHo 앱 깎는 이야기
iOS에서의 View가 업데이트되는 과정 iOS에서는 앱이 구동될 때, UIApplication의 싱글톤 인스턴스가 메인 쓰레드에서 Main Run Loop라는 이벤트 처리 루프를 실행시키고, 이 Main Run Loop중, Update Cycle에서 View들을 배치하고(layout), 보여주고(display) 제약합니다(constraints). ( UI관련 업데이트가 메인 쓰레드에서만 이루어 져야 하는 이유이기도 합니다. ) ( layout이란, 해당 뷰의 크기와 부모뷰에 대해 어느 위치에 있는지를 뜻합니다. ) ( display에는 뷰의 색, 텍스트, 이미지, Core Graphics 그리기 등이 있습니다. ) 그런데 메모리에 존재하는 모든 View들을, 매 Update Cycle마다 체크하는 것은..

여태껏 단순히 한방향으로 움직이고, 움직이는 속도를 조절하는 애니메이션만 알고있었다. 그런데 목표지점에 도착한 뒤, 살짝 튕기고 제자리로 돌아오는 일명 스프링 효과가 있었단걸 알았다. usingSpringWithDamping 0.0 ~ 1.0 0.0에 가까울수록 심하게 튕기고, 1.0이면 튕기지 않는다 initialSpringVelocity 0.0 ~ 1.0 0.0에 가까울수록 튕길 때 속도가 빠르다 예시 ) UIView.animate(withDuration: 0.1, delay: 0, animations: { // 일단 밑에 레이아웃하기 위한 버퍼 애니메이션 container.alpha = 1 }, completion: { _ in UIView.animate(withDuration: 0.5, delay..