거의 알고리즘 일기장

UITableView 쓸때 주의점 (with ios) 본문

IOS

UITableView 쓸때 주의점 (with ios)

건우권 2021. 9. 12. 17:36

1. 상황

게시물 등록에 관한 부분을 구현하고 있던중 생긴 문제인데, 이 view가 tableView로 짜여져 있었다. 

이 tableView 안에는 여러 input을 받는 section이 있었고, 하단의 등록 버튼을 클릭하게 되면 이 input들의 데이터 값을 받아 게시물을 등록하는 형식이었다.

상황 설명 이미지


2. 문제

여기서 문제는 등록버튼을 눌렀을때 생겼다.
각 tableView section 안에는 section에 맞는 input을 받는 부분들이 들어가 있었고  (textField, radioButton 등등)

등록을 하려면 input 안에 쓰여진 값들을 불러와야 하는데, tableView cellForRow 함수로 각 cell을 가져올때, 몇몇개의 항목이 계속해서 nil값을 반환했다.

https://developer.apple.com/documentation/uikit/uitableview/1614983-cellforrow


3. 이유

다시 함수 return에 대해 읽어봤더니..

ios 15 이전 버전에서는 invisible일 경우에 return nil을 반환한다.ㅠㅠ


4. 해결 방법

이 문제를 해결하기 위해서는 여러가지 해결방법이 있다.

 

내가 생각했던 방법으로는

1) invisible인 곳으로 scroll 시킨 후에 값을 받아온다.

2) input값을 입력할때, 다른 변수를 만들어 미리 값을 받아놓는다.

3) 그냥 tableView 쓰지말고 scrollview쓰고 각 section은 각각의 view로 만든다.

 

우리는 그냥 3)을 선택했다.

 

선택한 이유로는 초기 디자인에서는

1. 공통된 cell이 많아서 tableView를 썼고,

2. 또 이게 scroll이 되지 않을 만큼 각 section이 많지 않아서

 

tableview를 선택했었는데, 바뀐 디자인으로 적용하면서 tableview를 선택할 이유가 사라져 3)

을 선택 하였다.


웹 프론트 개발에서 ios 개발로 이직한지 이제 한달 반쯤 되어서 아직 미숙합니다. 틀린점이 있다면 댓글로 남겨주세요.

반응형

'IOS' 카테고리의 다른 글

snapkit 라이브러리 사용법 (with ios)  (0) 2021.10.02
LineHeight 에 대한 생각 (with ios)  (0) 2021.09.21
pdf image 적용 (with ios)  (0) 2021.09.19
Localization (with ios)  (0) 2021.09.19
delegate 패턴 (with swift)  (0) 2021.08.09
Comments