8주차 iOS - 2021.10.10 ~ 2021.10.16

2022. 4. 26. 15:00오늘하루 개발 일지

 

ADD) Theme View 추가


테마를 변경할 수 있도록 Theme View에 관한 Controller와 Reactor를 추가했고 Tableview를 추가했다.

AppearanceSelectCell을 추가하여 cell을 선택했을 때 라이트 / 다크 모드를 선택할 수 있도록 했다 이번에 Tableview를 사용하면서 RxDataSource를 채택하였고, 이걸 ReactorKit과 결합하여 사용하기 위해 공부를 많이 했다. cell별로 reactor를 각각 하나씩 만들어 넣어주었고 cell은 값을 바인딩하여 보여준다.

AppearnaceSelectCell은 하나만 선택가능하기에 선택된 index값을 저장하고, 그 값이 있는 셀의 reactor에만 state에 isSelected를 전달하도록 설정했다.

선택된 index값에 따라 변경하도록 했으며, 그 값을 UserDefault에 저장하여 App이 launch 될 때 지정한 테마를 사용하도록 하였다.

기존에 있던 라이트 모드로만 사용할 수 있도록 만든 값을 info.plist에서 제거해주었고, appDelegate에 있는 window의 overrideUserInterfaceStyle의 값을 변경해주는 함수를 만들어 제어하도록 만들어주었다.

 

❗️도달한 문제

RxDataSource 사용은 처음이고 거기다가 Reactor를 어떻게 넣어줘야 할지도 몰랐다.

이 두개를 섞어서 사용하는 방법을 정리한 자료가 거의 없었고, 우연히 정리한 블로그 겨우 찾아 적용을 시켰다.