일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 리팩토링
- clean architecture
- collectionview
- 스위프트
- HIG
- rxswift
- 애니메이션
- swift documentation
- Xcode
- uiscrollview
- combine
- 리펙터링
- Observable
- UICollectionView
- ios
- UITextView
- Protocol
- MVVM
- ribs
- uitableview
- Clean Code
- swiftUI
- 클린 코드
- RxCocoa
- Refactoring
- Human interface guide
- map
- 리펙토링
- tableView
- SWIFT
- Today
- Total
목록Animation (12)
김종권의 iOS 앱 개발 알아가기
beginFromCurrentState 개념 UIView.animate로 애니메이션을 줄 때, 현재 애니메이션이 진행되는게 있으면 그것에 이어서 적용되도록 하는 옵션 즉 beginFromCurrentState옵션은 현재 애니메이션이 동작하는게 있을때 그 애니메이션에 이어서 자연스럽게 동작하도록 구현할 때 사용 ex) 왼쪽 상단부터 가운데로 왔다갔다 하는 애니메이션이 있는 상태에서, 새로운 애니메이션을 넣었을때 자연스럽게 이어지도록 구현 왼쪽 상단부터 가운데로 왔다갔다 하는 애니메이션 준비 UIView.animate의 옵션에 .repeat, .autoreverse 사용 class ViewController: UIViewController { let myView = UIView(frame: CGRect(x:..
1. long press gesture와 애니메이션 - 드래그 구현 방법 (snapshotView, CGAffineTransform) 2. long press gesture와 애니메이션 - 드래그할때 다른 뷰 줄어들고, 해당 뷰 크게하기 (UIView.animate, CGAffineTransform, concatenating) 3. long press gesture와 애니메이션 - 드래그와 cornerRadius, shadow 효과 (CABasicAnimation) 4. long press gesture와 애니메이션 - UIStackView에 DragDrop 적용 (DragDropStackView 구현) 5. long press gesture와 애니메이션 - gesture 도중 화면 끝으로 가면 자동으로..
목차) SwiftUI의 기본 - 목차 링크 Animation SwiftUI에서는 withAnimation을 통하여 쉽게 애니메이션 효과 적용이 가능 버튼을 눌렀을때 widthAnimation()에 애니메이션 타입, duration, 애니메이션 적용할 클로저 블록만 구현하면 완료 애니메이션 적용 방법 애니메이션을 적용하기 전에 필요한 뷰 준비 모두 동일한 width로 시작 GeometryReader를 통해 현재 영역의 width, height값을 사용 struct ContentView : View { private let duration = 3.0 @State var isAnimated = false @State var width1 = 150.0 @State var width2 = 150.0 @State ..
GeometryReader ContainerView이며, 내부에 UIView들의 layout을 쉽게 변경할 수 있는 역할 * GeometryReader를 안쓴 경우) Stack안에 두가지의 뷰가 들어가고, Rectangle이 하단의 모든 자리를 차지하는 형태 struct Example: View { var body: some View { VStack { Text("example GeoMetryReader") Rectangle() .foregroundColor(.green) } } } struct Example_Previews: PreviewProvider { static var previews: some View { Example() } } GeometryReader를 사용한 경우) GeometryRe..
애니메이션에 사용할 모양 정의 SwiftUI에는 대표적으로 4가지의 모양을 쉽게 사용이 가능 Capsule() Circle() Rectangle() RoundedRectangle(cornerSize:) var body: some View { Capsule() .fill(color) .frame(height: 70) Circle() .fill(.red) .frame(width: 100, height: 100) Rectangle() .fill(.green) .frame(width: 100, height: 100) RoundedRectangle(cornerSize: .init(width: 12, height: 12)) .fill(.blue) .frame(width: 100, height: 100) } 이 중에..
CABasicAnimation layer에 관련된 싱글-키프레임 애니메이션 모든 뷰들이 가지고 있는 CALayer에 애니메이션을 줄 수 있는 방법이며, 뷰를 이동시키거나, 흐리게하거나 등의 다양한 기능 구현 가능 opacity colors locations fillColor strokeEnd rotation 기타 모든 종류의 키들을 extension으로 구현해놓은 아래 링크 참고 https://stackoverflow.com/questions/13913101/cabasicanimation-keys cf) CAKeyFrameAnimation도 위 종류들을 모두 사용할 수 있고, 레이어의 여러 프레임에 대한 작업에 사용되고 CABasicAnimation은 단일 키프레임에 대한 애니메이션 기능을 제공 사용 방..
1. UIViewPropertyAnimator, AnimationStates - 개념 2. UIViewPropertyAnimator, AnimationStates - fractionComplete, interactive animation (상호작용 애니메이션) UIViewPropertyAnimator UIView.animate와 다르게 시작, 종료, 일시중지, 정지, 완료가 가능 애니메이션 진행률과 같은 현재 상태에 대한 값도 알 수 있는 장점이 존재 iOS 10+ "프로퍼티 애니메이터"로 이름이 지어진 이유: 시작, 중지, 종료등을 컨트롤 할 수 있는 애니메이션 상태를 갖고 있기 때문 애니메이션 상태 새로 생성된 인스턴스는 inactive상태에서 시작 애니메이션을 마친 인스턴스도 inactive 상태로..
화면전환 애니메이션 커스텀 아이디어 VC1 -> VC2로 화면전환 하는 경우, VC2 인스턴스의 화면전환 델리게이트를 conform하여 애니메이션을 넣어주는 것 delegate 부분 // ViewController.swift (=VC1) @objc private func didTapNextButton() { let vc2 = VC2() vc2.transitioningDelegate = self // UIViewControllerAnimatedTransitioning? { MyPresentTransition() } func animationController(forDismissed dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning?..