일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- swift documentation
- RxCocoa
- uitableview
- Clean Code
- MVVM
- combine
- Protocol
- Human interface guide
- SWIFT
- ios
- Observable
- map
- ribs
- HIG
- 리펙토링
- clean architecture
- swiftUI
- Refactoring
- UITextView
- uiscrollview
- Xcode
- rxswift
- collectionview
- 스위프트
- 애니메이션
- UICollectionView
- tableView
- 클린 코드
- 리펙터링
- 리팩토링
- Today
- Total
목록BottomSheet (4)
김종권의 iOS 앱 개발 알아가기
* FloatingPanel을 이용하여 BottomSheet 사용 방법은 이전 포스팅 글 참고 PanModal PanModal star의 갯수가 3.4k이고 사용하는쪽에서 쉽게 접근이 가능한 프레임워크 (현재 글 작성 기준으로) 최신 업데이트가 3년전이지만 쉽게 사용이 가능하고 직관적이어서 바텀시트 관련 처리를 할때 유용한 프레임워크 PanModal 사용 방법 cocoapods으로 설치 pod 'PanModal' 바텀시트로 띄울 VC 구현 UILabel하나와 UITableView하나가 있는 평범한 UIViewController 준비 import UIKit final class MyVC: UIViewController { private let label: UILabel = { let label = UILa..
FloatingPanel 프레임워크 * FloatingPanel github bottom sheet UI 프레임워크 중 높은 star를 가지고 있는 프레임워크 FlaotingPanel을 이용하면 bottom sheet UI를 쉽게 구현할 수 있지만, 원하는 스타일의 bottom sheet를 구현하는 방법은 github에 나와있지 않으므로 따로 해당 글에서 알아보기 일반적인 BottomSheet 형태 2가지 1) bottom sheet의 뒷 배경을 터치할 수 있는 형태 2) bottom sheet의 뒷 배경을 dimmed 처리하고, 터치하면 닫히는 형태 구현 아이디어 1), 2) 타입 모두 handler를 가지고 내려서 dismiss 시킬 수 있어야하고, bottomSheet안에 있는 scrollView를..
구현 아이디어 - 뷰의 구조 레이아웃을 쉽게하기 위해서 뷰 2개를 사용 맨 아래에 깔린 뷰 - 터치 이벤트가 아래 뷰에 전달되는 PassThroughView를 사용 그 위에 UIView를 얹는 형태 (= bottomSheetView) BottomSheetView의 constraint left.right.bottom은 superview와 같도록 정의 top은 미리 정의해둔 yPosition만큼 top의 간격만큼 처리 // tip(아래쪽에 붙어있는 모드)과 full로 정하고, 각 yPosition을 계산 enum Mode { case tip case full } private enum Const { static let bottomSheetRatio: (Mode) -> Double = { mode in swi..
FloatingPanel이란? ViewController위에 또다른 ViewController가 떠있으며 올릴 수 있는 형태 사용 방법 FloatingPanel 프레임워크 이용 ViewController 준비: 배경 VC1와 그 위에 띄울 VC2 종속성 pod 'FloatingPanel' fpc(FloatingPanelController) 초기화 class ViewController: { var fpc: FloatingPanelController! var contentsVC: ContentsVC! // 띄울 VC override func viewDidLoad() { super.viewDidLoad() serupView() } private func setupView() { contentsVC = stor..