tableView 5

[UIKit] reloadSections에서 애니메이션 없애는 방법

reloadSections에서 애니메이션 없애는 방법 UITableView 혹은 UICollectionView를 사용할 때 reloadData()가 아니라 특정 섹션만 업데이트하는 reloadSections()를 사용할 수 있음. 특정 섹션만 업데이트 하는 것은 이점도 존재하나, 애니메이션이 들어가게 되어서 원하는 UX 결과물이 아니거나, 방송 실시간 채팅처럼 매우 빠른 속도로 데이터가 들어와 UI를 업데이트가 진행되는 경우 UI가 블락되거나, 심지어는 크래시가 발생하기도 함. Task { @MainActor [weak self] in guard let self else { return } UIView.performWithoutAnimation { self.reloadSections(in..

SwiftUI List Row 선택하기(TableView didSelectRow)

SwiftUI List Row 선택하기(TableView didSelectRow) 제목이 제법 UIKit 스러운데 작성하게 된 이유로는 내가 1년 정도 UIKit을 사용하면서 이미 사고가 여기에 익숙해진 상태인데, SwiftUI로 List의 Row(UIKit에서 cell)을 선택하는 로직을 작성하는게 잘 아직까지는 어려운 느낌.그래서 내가 구글에 저 키워드로 검색했는데, 딱히 맘에 드는게 안나타나서 직접 정리하려고 포스팅 함. 매우 간단한데, 이거 UIKit에서 SwiftUI로 사고를 전환하는 과정이 매우 어려웠음.우선 UIKit을 사용하다보니 tableView에서는 UITableViewDelegate를 상속받아서 didSelectRow를 구현되어 있음. 잘못된 케이스아래의 경우에는 Text 영역에만 G..

SwiftUI List (UITableView, UICollectionView)

SwiftUI List (UITableView, UICollectionView) SwiftUI에서는 UIKit과 달리 리스트를 구성하는게 매우 심플하다.아직까지 UIKit을 주로 사용하고 있어서 그런지 너무 단순한게 오히려 낯설어서 어렵게 느껴진다.SwiftUI 처음 공부하면 skimming을 진행해보자. 애플 공식문서 링크로 학습 진행. List를 서비스에 도입하기 전에 고려할 몇가지 부분.아직까지 UIKit의 RefreshControl이 SwiftUI에서 커스텀하기가 조금 어려운데, 이게 가능한지 확인이 필요하다.RefreshControl이 버그가 있다는 StackOverflow의 글이 많은데 반드시 확인하자.성능! prefetch는 어떻게 처리할 수 있을지가 고민이다swift concurrency를..

iOS SnapKit 공식문서로 공부하기 7탄 (UITableView 코드로 구성하기 3편)

iOS SnapKit 공식문서로 공부하기 7탄 (UITableView 코드로 구성하기 3편) 스토리보드에서 코드로 UITableView를 구성하는게 처음이라서 cell register나 delegate, datasource 등 놓치는 부분이 많은데, 천천히 구성해보자 이번에는 RxSwift를 활용해 Delegate와 DsataSource를 처리하자. //// ViewController05.swift// SnapKitPractice//// Created by Lee Geon Woo on 2021/08/19.//import UIKitimport SnapKitimport RxSwiftimport RxCocoaclass ViewController05Cell : UITableViewCell { ..

iOS SnapKit 공식문서로 공부하기 6탄 (UITableView 코드로 구성하기 2편)

iOS SnapKit 공식문서로 공부하기 6탄 (UITableView 코드로 구성하기 2편)이전 포스팅에서 TableView를 코드 기반으로 작성했는데, 이번에는 Snapkit을 온전하게 전부 적용해보자.다음 포스팅에는 RxSwift를 적용예정. 예제 코드//// ViewController.swift// SnapKitPractice//// Created by Lee GeonWoo on 2021/08/19.//import UIKitimport SnapKitclass ViewController04Cell : UITableViewCell { static let identifier = "ViewController04Cell" let img : UIImageView = { // 이..