나타난 오류 및 막힌점
이번에 프로젝트 앱을 만드면서 앱 내 다크모드 기능을 구현하던 중 투명도를 조절하여 색을 넣어줬는데 원하는 색이 안나온다.
테이블 셀의 구조를 확인해보니, 셀이 두겹의 뷰로 이루어져 있었다.
https://developer.apple.com/documentation/uikit/uitableviewcell/1623229-contentview
맨 앞에 있는 뷰는 ContentView이다.
공식문서에 따르면 ContentView는 셀 객체의 컨텐츠 뷰이고, 테이블뷰셀의 ContentView는 셀이 표시하는 컨텐츠의 상위 뷰라고 한다.
이는 셀의 가장 상위에 존재하며, 셀에 표시될 컨텐츠를 담고 있다고 한다.
뒤에 있는 뷰는 이 셀의 뷰인것같다..
왜 생성됬을까 하면 아마 셀은 UIView를 상속받고 있기 때문에 셀을 쓴다면 셀 자체의 UIView가 생성되는 듯 하다.
그래서 셀 자체는 UIView의 변수 backgrounColor에 접근할 수 있고, 설정할 수 있다.
종합하자면 셀은 셀자체의 UIView와, 셀이 갖고있는 ContentView가 존재한다.
오류 해결
두개의 뷰중 하나만 색감을 입히기로 하고, 나머지 한개의 배경색을 투명색으로 바꾸었다.
셀의 accessoryView가 없어서 contentView가 셀의 모든 부분을 덮지않았다.
그래서 contentView의 배경색을 투명색으로하고, cell의 배경색을 사용했다.
잘된다!
'iOS' 카테고리의 다른 글
iOS 다크모드 설정을 3개 옵션으로 나눠서 적용하자 (0) | 2024.05.05 |
---|---|
iOS 다크모드에 관하여 (0) | 2024.05.05 |
present로 다른 뷰로 이동후 돌아올때, viewWillApear 메서드가 호출되지않는점 (0) | 2024.04.22 |
Delegate 패턴 구현중에 delgate = nil 오류 (0) | 2024.04.22 |
아이폰에 넣은 앱이 SQLite의 DB를 불러오지 못한 에러 (0) | 2024.04.14 |