UITableView
-
0️⃣ Diffable Datasource? DataSource? UITableView와 UICollectionView를 사용할 때, 공통적으로 사용하는 두 객체가 있다. 그것은 바로 Delegate와 DataSource. 잠깐 Delegate와 Datasource의 개념을 복습하고 지나가보자면, MVC(Model-View-Controller) 프로그래밍 디자인 패턴에서 이 객체들을 바라봤을 때, 뷰를 그리기 위해 필요한 데이터를 제공하는 모델(M)의 역할은 DataSource가, 화면을 처리하는 뷰(V)의 역할은 테이블뷰 인스턴스가, 뷰의 모양과 동작을 관리하는 컨트롤러(C)의 역할은 Delegate가 담당한 셈이라고 이해하면 된다. 오늘 이 글에서는 데이터를 제공하는 DataSource 중에서도 (제..
[UITableViewDiffableDataSource] Diffable Datasource, 데이터가 달라졌을 때 View에 효율적으로 반영하는 방법0️⃣ Diffable Datasource? DataSource? UITableView와 UICollectionView를 사용할 때, 공통적으로 사용하는 두 객체가 있다. 그것은 바로 Delegate와 DataSource. 잠깐 Delegate와 Datasource의 개념을 복습하고 지나가보자면, MVC(Model-View-Controller) 프로그래밍 디자인 패턴에서 이 객체들을 바라봤을 때, 뷰를 그리기 위해 필요한 데이터를 제공하는 모델(M)의 역할은 DataSource가, 화면을 처리하는 뷰(V)의 역할은 테이블뷰 인스턴스가, 뷰의 모양과 동작을 관리하는 컨트롤러(C)의 역할은 Delegate가 담당한 셈이라고 이해하면 된다. 오늘 이 글에서는 데이터를 제공하는 DataSource 중에서도 (제..
2023.11.04 -
1️⃣ Intro 이번 글에서는 요즘 과제로 하고 있는 아이폰 기본 "날씨" 앱을 클론 코딩하면서 알게 된 SearchController와 SearchBar에 대한 내용을 정리해 보겠다. 내가 구현하고 싶었던 내용은 아래 내용과 같았다. 여러 지역의 날씨 데이터가 아래 gif에서 보이는 것과 같이 UITableView의 Cell로 구성되어 있을 때, NavigationBar에 포함되어 있는 SearchBar에 내가 검색하고 싶은 지역 이름을 입력하면, 해당 이름이 포함된 지역의 날씨 데이터 Cell만 TableView에 표출할 수 있도록 하는 내용이다. 2️⃣ UISearchBar? UISearchController? UISearchBar는 사용자의 텍스트 입력을 받는 텍스트 필드와 함께 검색/취소/북마..
[UISerarchBar] UISearchController를 이용해서 TableView의 특정 Cell을 표출하는 SearchBar1️⃣ Intro 이번 글에서는 요즘 과제로 하고 있는 아이폰 기본 "날씨" 앱을 클론 코딩하면서 알게 된 SearchController와 SearchBar에 대한 내용을 정리해 보겠다. 내가 구현하고 싶었던 내용은 아래 내용과 같았다. 여러 지역의 날씨 데이터가 아래 gif에서 보이는 것과 같이 UITableView의 Cell로 구성되어 있을 때, NavigationBar에 포함되어 있는 SearchBar에 내가 검색하고 싶은 지역 이름을 입력하면, 해당 이름이 포함된 지역의 날씨 데이터 Cell만 TableView에 표출할 수 있도록 하는 내용이다. 2️⃣ UISearchBar? UISearchController? UISearchBar는 사용자의 텍스트 입력을 받는 텍스트 필드와 함께 검색/취소/북마..
2023.11.03 -
iOS 개발을 하면, 가장 자주 만들어야 할 화면이 바로 테이블 뷰와 컬렉션 뷰일 거다. 테이블 뷰(TableView)와 컬렉션 뷰(CollectionView)는 모두 같은 형태의 데이터를 표출할 때 큰 틀만 만들어두고, 그 안에 들어가는 데이터의 세부 내용만 바꿔주는 식으로 사용한다는 점에서 두 뷰가 공통점을 가졌다. 즉, 다시 말하자면, 이 두 화면은 모두 1개 이상의 데이터가 존재할 때 그 데이터들을 반복해서 보여주기 위한 화면이라는 거다. 그렇다면, 만약에 데이터가 한 개도 없을 때는 어떤 화면이 나오게 될까? 당연히 아무런 데이터가 없기 때문에, 아래 왼쪽 사진처럼 빈 화면이 나오게 된다. 이렇게 빈 화면을 사용자에게 보여줄 수 있지만, 보통은 이 화면을 그대로 노출시키지는 않는다. 이 상황에,..
[UITableView] 아무 데이터가 없을 때 나오는 화면,엠티뷰(empty view) 만들기iOS 개발을 하면, 가장 자주 만들어야 할 화면이 바로 테이블 뷰와 컬렉션 뷰일 거다. 테이블 뷰(TableView)와 컬렉션 뷰(CollectionView)는 모두 같은 형태의 데이터를 표출할 때 큰 틀만 만들어두고, 그 안에 들어가는 데이터의 세부 내용만 바꿔주는 식으로 사용한다는 점에서 두 뷰가 공통점을 가졌다. 즉, 다시 말하자면, 이 두 화면은 모두 1개 이상의 데이터가 존재할 때 그 데이터들을 반복해서 보여주기 위한 화면이라는 거다. 그렇다면, 만약에 데이터가 한 개도 없을 때는 어떤 화면이 나오게 될까? 당연히 아무런 데이터가 없기 때문에, 아래 왼쪽 사진처럼 빈 화면이 나오게 된다. 이렇게 빈 화면을 사용자에게 보여줄 수 있지만, 보통은 이 화면을 그대로 노출시키지는 않는다. 이 상황에,..
2022.01.16 -
원래 iOS 개발에서, 어떤 특정한 값을 가져오거나 전달하기 위해 가장 많이 사용하는 방법은 delegate 패턴을 활용하는 방법이다. 하지만, 오늘 다룰 내용은 테이블 뷰에서 delegate 패턴을 사용하지 않고도, 클릭한 cell의 index값을 가져오는 방법을 다뤄보려고 한다. 우선, cell은 이렇게 생겼다. cell에 있는 여러 element 중에서 오늘은 가장 왼쪽에 있는 pinButton을 클릭했을 때를 가정하고 내용을 다뤄보도록 하겠다. UITableViewDataSource에 있는 셀을 통해 먼저 접근해주자. Cell에 있는 버튼에 타깃 함수(addTarget)를 추가해 버튼이 클릭되었을 때, 액션을 인식할 수 있도록 먼저 추가해줄 것이다. func tableView(_ tableView..
[UITableView] Delegate를 사용하지 않고 테이블 뷰 cell index값을 가져오는 방법원래 iOS 개발에서, 어떤 특정한 값을 가져오거나 전달하기 위해 가장 많이 사용하는 방법은 delegate 패턴을 활용하는 방법이다. 하지만, 오늘 다룰 내용은 테이블 뷰에서 delegate 패턴을 사용하지 않고도, 클릭한 cell의 index값을 가져오는 방법을 다뤄보려고 한다. 우선, cell은 이렇게 생겼다. cell에 있는 여러 element 중에서 오늘은 가장 왼쪽에 있는 pinButton을 클릭했을 때를 가정하고 내용을 다뤄보도록 하겠다. UITableViewDataSource에 있는 셀을 통해 먼저 접근해주자. Cell에 있는 버튼에 타깃 함수(addTarget)를 추가해 버튼이 클릭되었을 때, 액션을 인식할 수 있도록 먼저 추가해줄 것이다. func tableView(_ tableView..
2022.01.02 -
1️⃣ Swipe Action 어떻게 구현하는데? 오늘 글은 테이블뷰에서 스와이프(밀기 동작)를 했을 때 보이는 액션인, Swipe Action을 구현하는 방법에 대해 알아보려 한다. TableView (= CollectionView)를 구현할 때, Delegate와 DataSource 프로토콜을 필수로 채택하고 그에 따른 세부 내용을 구현해주는 것은 iOS 개발의 아주 기본적인 상식이라고 말할 수 있는데, 오늘 구현해줄 Swipe Action은 UITableViewDelegate에 구현되어 있다. Apple 공식 문서를 살펴보면, Swipe Action은 2가지 형태로 구현해줄 수 있다고 한다. 하나는 왼쪽에서 액션을 주는 leadingSwipeActionsConfigurationForRow, 또 다른..
[UITableView] Swipe Action을 구현하는 방법 (UISwipeActionsConfiguration, UIContextualAction)1️⃣ Swipe Action 어떻게 구현하는데? 오늘 글은 테이블뷰에서 스와이프(밀기 동작)를 했을 때 보이는 액션인, Swipe Action을 구현하는 방법에 대해 알아보려 한다. TableView (= CollectionView)를 구현할 때, Delegate와 DataSource 프로토콜을 필수로 채택하고 그에 따른 세부 내용을 구현해주는 것은 iOS 개발의 아주 기본적인 상식이라고 말할 수 있는데, 오늘 구현해줄 Swipe Action은 UITableViewDelegate에 구현되어 있다. Apple 공식 문서를 살펴보면, Swipe Action은 2가지 형태로 구현해줄 수 있다고 한다. 하나는 왼쪽에서 액션을 주는 leadingSwipeActionsConfigurationForRow, 또 다른..
2021.10.01