일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리펙토링
- tableView
- 스위프트
- UITextView
- collectionview
- MVVM
- Human interface guide
- 클린 코드
- HIG
- RxCocoa
- map
- 리펙터링
- uiscrollview
- ribs
- SWIFT
- Refactoring
- swift documentation
- Xcode
- Observable
- rxswift
- ios
- clean architecture
- 애니메이션
- combine
- 리팩토링
- UICollectionView
- Protocol
- swiftUI
- uitableview
- Clean Code
- Today
- Total
목록UI 컴포넌트 (swift) (66)
김종권의 iOS 앱 개발 알아가기
1. 키보드 처리 - 키보드가 올라갈 때 뷰를 올리는 UI 2. 키보드 처리 - 키보드가 올라갈 때 스크롤 뷰를 올리는 UI 키보드가 올라갈 때 스크롤 뷰를 올리는 UI 구현 아이디어 keyboard를 감싸는 투명 UIView, keyboard 바로 위쪽을 감싸는 투명 UIView를 준비 투명 UIView는 hitTest를 사용하여 pass through하게 구현 (PassThroughView 구현은 이전 포스팅 글 참고) 키보드 바로 위쪽을 감싸는 투명 UIView위에 UIScrollView + UIStackView를 삽입 UIStackView에 UITextView, UIButton을 넣으면 버튼이 화면 하단으로 가지 않고 중간에 있을것이므로, UITextView와 UIButton 중간 여백을 넣어주..
1. 키보드 처리 - 키보드가 올라갈 때 뷰를 올리는 UI 2. 키보드 처리 - 키보드가 올라갈 때 스크롤 뷰를 올리는 UI 키보드가 올라갈 때 뷰를 올리는 UI 구현 아이디어 keyboard를 감싸는 투명 UIView, keyboard 바로 위쪽을 감싸는 투명 UIView를 준비 투명 UIView는 hitTest를 사용하여 pass through하게 구현 (PassThroughView 구현은 이전 포스팅 글 참고) 키보드 바로 위쪽을 감싸는 투명 UIView위에 UITextView, UIButton을 두어서 구현 구현 사용한 라이브러리 pod 'SnapKit' pod 'Then' pod 'RxSwift' pod 'RxCocoa' pod 'RxGesture' 상속보다는 유지보수에 용이한 프로토콜 형태인..
주의사항 애플에서 제공하는 기본 Drag, Drop을 사용하면, UITextField에서 becomeFirstResponder 상태에서 resignFirstResponder로 변경되므로 셀을 이동시킬때 키보드가 내려가므로 주의 키보드가 내려가지 않게 하려면 Drag, Drop을 제공하는 커스텀 CollectionView 구현이 필요 키보드가 내려가지 않게 하려면 UILongPressGestureRecognizer를 사용하여 직접 커스텀 필요한데, 이 부분은 다음 포스팅 글참고 ex) 애플에서 기본으로 제공하는 drag, drop을 사용한 경우, 셀 drag를 하는 순간 키보드가 내려가는 문제 DragDropCollectionView 구현 아이디어 collectionView의 drag, drop 델릴게이트..
1. 갤러리 화면 만들기, 사진 첨부 - 앨범 가져오기 (PHFetchResult, PHAsset) 2. 갤러리 화면 만들기, 사진 첨부 - 사진 가져오기 (PHCachingImageManager, PHImageRequestOptions) 3. 갤러리 화면 만들기, 사진 첨부 - 갤러리 화면 UI 구현 방법 앨범과 사진 가져오는 방법 (이전글에 있는 내용 복습) Photos 모듈에서 제공하는 API를 사용 디바이스의 앨범을 먼저 가져오기 (PHFetchResult가 앨범을 의미) 앨범에 담긴 이미지 정보 가져오기 (PHAsset이 이미지나 비디오 정보를 의미) PHAsset을 가지고 UIImage 이미지 가져오기 (PHCachingImageManager가 요청한 크기에 맞추어 PHAsset으로부터 이미지..
1. 갤러리 화면 만들기, 사진 첨부 - 앨범 가져오기 (PHFetchResult, PHAsset) 2. 갤러리 화면 만들기, 사진 첨부 - 사진 가져오기 (PHCachingImageManager, PHImageRequestOptions) 3. 갤러리 화면 만들기, 사진 첨부 - 갤러리 화면 UI 구현 방법 앨범과 사진 가져오는 방법 (이전글에 있는 내용 복습) Photos 모듈에서 제공하는 API를 사용 디바이스의 앨범을 먼저 가져오기 (PHFetchResult가 앨범을 의미) 앨범에 담긴 이미지 정보 가져오기 (PHAsset이 이미지나 비디오 정보를 의미) PHAsset을 가지고 UIImage 이미지 가져오기 (PHCachingImageManager가 요청한 크기에 맞추어 PHAsset으로부터 이미지..
1. 갤러리 화면 만들기, 사진 첨부 - 앨범 가져오기 (PHFetchResult, PHAsset) 2. 갤러리 화면 만들기, 사진 첨부 - 사진 가져오기 (PHCachingImageManager, PHImageRequestOptions) 3. 갤러리 화면 만들기, 사진 첨부 - 갤러리 화면 UI 구현 방법 앨범과 사진 가져오는 방법 Photos 모듈에서 제공하는 API를 사용 디바이스의 앨범을 먼저 가져오기 (PHFetchResult가 앨범을 의미) 앨범에 담긴 이미지 정보 가져오기 (PHAsset이 이미지나 비디오 정보를 의미) PHAsset을 가지고 UIImage 이미지 가져오기 (PHCachingImageManager가 요청한 크기에 맞추어 PHAsset으로부터 이미지를 가져옴) 쿼리는 모두 PH..
스크롤 구분 방법 스크롤을 정교하게 컨트롤하다보면 사용자가 드래그하여 스크롤이 시작되었는지, setContentOffset(_:animated:)로 스크롤을 지정했는지 구분이 필요 ex) UIScrollView에서 스크롤 될 때마다 특정 처리를 하고싶은 경우 사용하는 didScroll 델리게이트에서 setContentOffset과 직접 드래그 했을때 구분하고 싶은 경우? extension ViewController: UITableViewDelegate { func scrollViewDidScroll(_ scrollView: UIScrollView) { print(scrollView.contentOffset) label.text = "\(scrollView.contentOffset)" } } 사용자가 드래..
1. 스크롤되는 PagerView 구현 방법 - 상단 TabView 구현하기 2. 스크롤되는 PagerView 구현 방법 - 하단 PagerView 구현하기 3. 스크롤되는 PagerView 구현 방법 - Tab과 Pager 스크롤 싱크 맞추기 v PagerView 형태 상단에는 TabView UIScrollView안에 UIStackView를 넣어서 구현하고 각 tap 이벤트는 뷰의 tag를 사용하면 인덱스를 구할 수 있음 하단에는 PagerView 페이지 기능을 쉽게 사용하기 위해서 UICollectionView를 사용하여 구현 주의) UIPageViewController를 사용하지 않음 - UIPageViewController안에 내장된 UIScrollView의 형태는 내부 content 크기만큼 있..