Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Human interface guide
- collectionview
- SWIFT
- UITextView
- rxswift
- combine
- UICollectionView
- 리펙토링
- Xcode
- ios
- Protocol
- Clean Code
- tableView
- map
- 클린 코드
- 리펙터링
- swift documentation
- RxCocoa
- 스위프트
- 리팩토링
- HIG
- ribs
- Refactoring
- uiscrollview
- MVVM
- swiftUI
- clean architecture
- 애니메이션
- Observable
- uitableview
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] 드래그하여 view움직이기 (draggable view) UIPanGestureRecognizer 본문
iOS 응용 (swift)
[iOS - swift] 드래그하여 view움직이기 (draggable view) UIPanGestureRecognizer
jake-kim 2021. 1. 17. 13:40
의존성
- RxSwift, RxCocoa를 사용하여 편리하게 binding
pod 'RxSwift'
pod 'RxCocoa'
UIPanGestureRecognizer() 등록
- 초기 코드
import UIKit
import RxSwift
import RxCocoa
class ViewController: UIViewController {
let bag = DisposeBag()
@IBOutlet weak var myView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
setupInputBinding()
}
private func setupInputBinding() {
}
}
- binding 구현
- sender.trnslation(in:superView): sender를 통해 superView에서 움직인 정보 획득
- 위 정보를 바탕으로 center값 수정
- sender의 움직인 값을 0으로 다시 초기화
private func setupInputBinding() {
let panGesture = UIPanGestureRecognizer()
myView.addGestureRecognizer(panGesture)
panGesture.rx.event.asDriver { _ in .never() }
.drive(onNext: { [weak self] sender in
guard let view = self?.view,
let senderView = sender.view else {
return
}
// view에서 움직인 정보
let transition = sender.translation(in: view)
senderView.center = CGPoint(x: senderView.center.x + transition.x, y: senderView.center.y + transition.y)
sender.setTranslation(.zero, in: view) // 움직인 값을 0으로 초기화
}).disposed(by: bag)
}
'iOS 응용 (swift)' 카테고리의 다른 글
[iOS - swift] WebView cookie 설정 (cache) (0) | 2021.01.21 |
---|---|
[iOS - swift] R.swift 프레임워크, Localization, Localizable (0) | 2021.01.20 |
[iOS - swift] Fake GPS, 가상 위치 설정 (iTools) (0) | 2021.01.15 |
[iOS - swift] throttle tap 커스텀 (0) | 2021.01.14 |
[iOS - swift] popToRootViewController의 completion 인자를 가진 커스텀 함수 만드는 방법 (CATransaction 사용) (0) | 2021.01.12 |
Comments