일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- combine
- 스위프트
- Protocol
- HIG
- 리펙토링
- collectionview
- Clean Code
- 리펙터링
- MVVM
- swiftUI
- UITextView
- uiscrollview
- clean architecture
- Xcode
- RxCocoa
- ios
- Observable
- Refactoring
- uitableview
- Human interface guide
- 애니메이션
- SWIFT
- UICollectionView
- ribs
- swift documentation
- 클린 코드
- tableView
- map
- 리팩토링
- rxswift
- Today
- Total
목록DragGesture (3)
김종권의 iOS 앱 개발 알아가기
뷰를 버튼처럼 만드는 방법일반 SwiftUI의 버튼은 Button(action:label:)형태이며, presssed color는 label부분이 투명해지는 효과가 디폴트로 들어간 상태(코드)struct ContentView: View { @State private var isPressed = false @State private var isChecked = false var body: some View { VStack { normalButton } } @ViewBuilder private var normalButton: some View { Button(action: { isChe..
Swipe Down To Dismiss 구현 아이디어 .gesture()와 DragGesture를 사용하여 drag 제스쳐 구현 (gesture와 DragGesture 개념을 모른다면, 이전 포스팅 글 참고) gesture 안에서 y축이 얼마나 변했는지와, y축 velocity 값을 가지고 dismiss할것인지 결정 dismiss할때는 NavigationLink의 인수 중 Binding 프로퍼티인 isActive값을 false로 변경 구현 편리를 위해 CGSize extension으로 - operator 구현 extension CGPoint { static func - (lhs: Self, rhs: Self) -> Self { CGPoint(x: lhs.x - rhs.x, y: lhs.y - rhs.y)..
DragGesture drag 관련 액션 이벤트를 생성할때 사용 View 프로토콜을 따르고 있는 모든 곳에 .gesture()를 추가할 수 있는데, 이 gesture안에 들어가는 인스턴스가 DragGesture DragGesture()인스턴스에 onChanged, onEnded를 사용하여 드래그 이벤트 처리 var body: some View { Button("SomeButton") { print("tap button") } .gesture( DragGesture() .onChanged { gesture in } .onEnded { gesture in } ) } 뷰 드래그 구현 방법 프로퍼티 정의 draggedOffset: 드래그한 만큼 뷰가 움직이도록 binding에 사용될 프로퍼티 accumlated..