일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- swiftUI
- collectionview
- Protocol
- UICollectionView
- 스위프트
- rxswift
- Observable
- Human interface guide
- swift documentation
- HIG
- Xcode
- SWIFT
- 리펙토링
- Clean Code
- uiscrollview
- MVVM
- ios
- 리펙터링
- Refactoring
- tableView
- map
- 애니메이션
- combine
- clean architecture
- ribs
- uitableview
- UITextView
- 리팩토링
- RxCocoa
- 클린 코드
- Today
- Total
목록uitableview (27)
김종권의 iOS 앱 개발 알아가기
사용한 프레임워크 RxSwift RxCocoa RxDataSources 구현 아이디어 RxDataSources의 인스턴스가 가지고 있는 canEditRowAtIndexPath라는 프로퍼티를 사용하여 delete 기능 활성화 dataSource.canEditRowAtIndexPath = { _, _ in true } tableView의 rx.itemDeleted를 바인딩하여 처리 self.tableView.rx.itemDeleted .bind { ... } RxDataSource를 사용한 UITableView 구현 예제에 사용할 SectionModel Section의 데이터는 사용하지 않을 것이지만, section이 존재할때 어떻게 사용되는지를 예를 위해 존재 import RxDataSources stru..
1. Section, Item 모델링 - 단일 Section, 다중 Item 모델링 방법 (UITableView, UICollectionView) 2. Section, Item 모델링 - 다중 Section, 다중 Item 모델링 방법 (UITableView, UICollectionView) 예제에 사용한 프레임워크 Then - 초기화하는 동시에 프로퍼티에 접근하여 sugar programming을 위해 사용 SnapKit - UI의 오토레이아웃 구현에 편의를 위해 사용 RxSwift, RxCocoa - 비동기 처리에 편의를 위해 사용 RxDataSources - dataSource는 UITableViewDataSource 델리게이트를 사용하면 되지만 편의를 위해서 RxDataSource 사용 cf) 만..
1. Section, Item 모델링 - 단일 Section, 다중 Item 모델링 방법 (UITableView, UICollectionView) 2. Section, Item 모델링 - 다중 Section, 다중 Item 모델링 방법 (UITableView, UICollectionView) 예제에 사용한 framework Cell안의 UI 인터렉션 처리를 위해 일반적으로 많이 사용하는 비동기 처리 방식 예제를 보이기 위해 아래 프레임워크 사용 RxSwift와 RxCocoa 사용 다중 Item 모델링 아이디어 ViewController에서 UITableView를 가지고 있고 이 tableView의 셀 처리를 쉽게 하고싶은 경우 모델링이 중요 tableView에서 사용할 데이터 소스의 형태는 아래와 같은 ..
예제에 사용한 프레임워크 SnapKit Then RxSwift, RxCocoa Kingfisher Alamofire # UI pod 'SnapKit' pod 'Then' # Util pod 'RxSwift' pod 'RxCocoa' pod 'Kingfisher' # Network pod 'Alamofire' 페이지네이션 아이디어 2가지 1번 방법) 스크롤된 위치를 계산하여, 남은 아래 영역이 프레임의 크기보다 작게 남은 경우, 페이지네이션 실행 2번 방법) delegate 메소드인 tableView(_:prefetchRowAt:) 를 사용하여 prefetch 사용 func tableView(_ tableView: UITableView, prefetchRowsAt indexPaths: [IndexPath]..
intrinsicContentSize intrinsicContentSize UILabel과 같은 UI에는 본질적인 크기와, 프레임 크기가 존재하는데 이 때 본질적인 크기를 의미 intrinsicContentSize를 가지고 있는 UI와 가지고 있지 않는것들로 분류 ex) UILabel은 intrinsicContentSize가 자동으로 불리는 형태 3초후에 text를 입력하고, 화면에 잘리지 않고 길이만큼 content가 표시되는지 테스트 override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) DispatchQueue.main.asyncAfter(deadline: .now() + 3) { self.nameLabel.text..
UITableViewCell, UICollectionViewCell에서의 highlighted 애니메이션 가장 쉽게 접근하기위해서 Cell에서 highlighted가 트리거 될 때, cell 속성에 배경색이나 이미지를 바꾸는 등을 할 수 있지만 cell은 UIButton과 다르게 highlighted의 값이 true, false가 빠르게 바뀌어, 적용이 안되는 것처럼 보이는 문제가 존재 아래처럼 셀을 탭할 때 highlighted 애니메이션이 안들어간것처럼 보이는 현상 존재 (길게 누르고 있어야 highlighted 확인 가능) // in MyTableViewCell override func setHighlighted(_ highlighted: Bool, animated: Bool) { super.set..
Section을 사용하는 기준 분류 - TableView / Section / Cell -> Cell들은 서로 연관되어 있는지? 연관이 적으면 Section으로 나누기 -> Section들은 표현하려는 방향이 같은지? 표현하려는 방향이 같으면 하나의 TableView에 표현 Section을 한 개만 사용 vs Section을 여러개 사용 아래처럼 아이폰에 설치되어 있는 Setting앱을 보면, 하나의 TableView안에 Section이 여러개로 나누어져 있는 패턴 Section의 개념? Section은 하나의 TableView 안에서 데이터의 성격을 분류할 때 사용하는 것 Cell은 같은것을 쓸지라도 성격에 따라 Section을 나누어서 사용할 것 (Cell만 적용하다가 Cell끼리의 성격이 달라진다 ..
UITableView에서 스크롤 이동 tableView.scrollToRow(at:at:animated:) 메서드 사용 UI적인 접근이 필요하므로 main 스레드에서 접근 @IBAction func didTapButton(_ sender: Any) { DispatchQueue.main.async { [weak self] in self?.tableView.scrollToRow(at: IndexPath(row: 77, section: 0), at: .bottom, animated: true) } } CollectionView에서 스크롤 이동 collectionView.scrollToItem(at:at:animated:) 메서드 이용 main 스레드로 접근 @objc func didTapMoveScrollB..