일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 Code
- 클린 코드
- Refactoring
- rxswift
- SWIFT
- tableView
- UITextView
- HIG
- 애니메이션
- combine
- uitableview
- Protocol
- 리팩토링
- map
- 리펙터링
- uiscrollview
- ribs
- clean architecture
- Human interface guide
- ios
- 스위프트
- 리펙토링
- UICollectionView
- collectionview
- Xcode
- swift documentation
- swiftUI
- RxCocoa
- Observable
- MVVM
- Today
- Total
목록UICollectionView (27)
김종권의 iOS 앱 개발 알아가기
UITableViewCell과 UICollectionViewCellUITableViewCell과 UICollectionViewCell은 각각 반복되는 여러 데이터를 화면에 보이는 지점만 렌더링하여(cellForRowAt, cellForItemAt) 효율적으로 뷰를 그릴 수 있는 인터페이스UITableViewCellUICollectionViewCell각 커스텀 셀을 구현할 때 비슷한 구조를 가지고 있음ex) tableViewCell 구현class CustomTableViewCell: UITableViewCell { let titleLabel = UILabel() override init(style: UITableViewCell.CellStyle, reuseIdentifier: String..
setContentOffset 개념 UIScrollView의 메서드이며, CGPoint 좌표를 통해 원하는 곳으로 스크롤 하게끔하는 기능 애플에서는 이 메서드에 completion handler를 따로 작성하지 않아 직접 구현이 필요 completion 구현하는 방법에는 UIView.animate와 CATransaction 등등의 방법이 널리 알려져 있지만 이 방법으로는 completion 동작 x setContentOffset에 completion 구현 방법 "contentOffsetAnimationDuration"를 사용하여 UIScrollView의 인스턴스에 setValue로 입력하면 스크롤 속도를 지정할 수 있는 아이디어를 사용 scrollView.setValue(0.5, forKeyPath: "..
contentInsetAdjustmentBehavior 속성 safeArea를 고려하여 자동으로 레이아웃을 지정해주도록 하는 옵션 구체적으로는 scrollView의 content 영역의 inset을 safe area 고려하여 레이아웃될지 결정해주는 옵션 ContentInsetAdjustmentBehavior의 4가지 옵션 automatic(default): 자동으로 safe area에 맞게 레이아웃 조정 scrollableAxes: 스크롤 가능한 방향만 safe area 고려 never: safe area 상관 없이 적용 always: content는 무조건 safe area 고려 @available(iOS 11.0, *) public enum ContentInsetAdjustmentBehavior : ..
동적인 셀 UICollectionView나 UITableView를 사용할 때 동적인 셀 처리가 필요 Cell안에서 UIImageView에 URL을 가지고 image를 가져오는 피드와 같은 UI에 Cell의 height가 동적으로 변하는 경우가 존재 동적인 셀 구현 아이디어 보통 이미지 라이브러리는 UIImageView의 extension으로 있고 이것을 아래처럼 사용 가능하도록 처리 셀 안에서 setImage가 끝났을 때 동적으로 셀의 크기를 변경해주는 작업이 필요 // (Kingfisher 방법) imageView.kf.setImage(with: url) { ... } // (SDWebImage 방법) imageView.sd_setImage(with: url) { ... } 뷰를 오토레이아웃으로 처리한..
주의사항 애플에서 제공하는 기본 Drag, Drop을 사용하면, UITextField에서 becomeFirstResponder 상태에서 resignFirstResponder로 변경되므로 셀을 이동시킬때 키보드가 내려가므로 주의 키보드가 내려가지 않게 하려면 Drag, Drop을 제공하는 커스텀 CollectionView 구현이 필요 키보드가 내려가지 않게 하려면 UILongPressGestureRecognizer를 사용하여 직접 커스텀 필요한데, 이 부분은 다음 포스팅 글참고 ex) 애플에서 기본으로 제공하는 drag, drop을 사용한 경우, 셀 drag를 하는 순간 키보드가 내려가는 문제 DragDropCollectionView 구현 아이디어 collectionView의 drag, drop 델릴게이트..
구현 아이디어 Cell의 UI가 복잡하거나 여러가지의 타입이 있는 경우 보통 UITableView나 UICollectionView를 사용하지만, 위처럼 단순한 수평 스크롤 뷰는 UIScrollView와 UIStackView로 쉽게 구현 가능 주의할점은 UITableView, UICollectionView는 Cell을 재사용하여 UI성능에 이점이 있으므로, 데이터가 많을때는 UITableView나 UICollectionView를 사용 구현 핵심 부분은 데이터를 선택했을때 해당 데이터의 index를 알아내는 것인데, 이것또한 UIView의 tag를 활용하면 쉽게 구현이 가능 구현 * UI를 코드로 구현할 때 편의를 위해 아래 라이브러리 사용 pod 'SnapKit' pod 'Then' 수평 스크롤 뷰인 My..
구현 아이디어 상단에는 UIImageView, 하단에는 스크롤되는 UITableView나 UICollectionView 준비 (예제에서는 UICollectionView 사용) UIImageView와 UICollectionView 레이아웃 UICollectionView의 topAnchor를 화면의 최상단으로 제약 UICollectionView의 top contentInset값을 UIImageView의 크기만큼 설정 - UIImageView가 마치 collectionView의 하나의 셀처럼 보이도록 하기 위함 상단의 UIImageView도 마치 스크롤 되는 동작처럼 보여야하므로, scrollViewDidScroll(_:) 델리게이트에서, scrollView.contentOffset.y값을 이용하여 UIIma..
1. 스크롤 영역을 암시해주는 Carousel 구현 - (UICollectionView, 수평 스크롤 뷰, paging 구현) 2. 스크롤 영역을 암시해주는 Carousel 구현 - 포커스 영역 이펙트 첫번째 글에서 구현한 Carousel) 이번 글에서 알아볼, 셀에 효과가 들어간 Carousel) * 포커스 되는 영역이 아닐 경우, dimmed 처리 * 구현 전에 이전까지 구현된 코드 다운로드: https://github.com/JK0369/ExCarousel 모델 생성 iOS에서 셀은 항상 reuse 되므로, cell에 직접 접근하여 속성을 변경하는 것보다 dataSource에 속성을 지정해준 다음 reloadData하도록 설계할것 상태 관리를 dataSource에서만 하도록 구현 기존에 아래처럼 있..