-
SwiftUI List Background Color(iOS 16.0+)iOS/Swift 2022. 9. 29. 10:52
안녕하세요, 오늘은 SwiftUI에서 List의 Background Color를 설정하는 방법에 대해서 알아보겠습니다.
바로 시작하겠습니다 🐶
iOS 16부터 SwiftUI의 List는 UICollectionView로 지원된다.
그래서 보통 View의 이니셜라이져에서 UICollectionView, UICollectionViewCell의 Appearance().backgroundColor를 Clear로 바꿔주게 되는데, 바꿔봐도 계속 systemBackground 색상이 남아있게 된다.
List는 뷰를 다시 그리면서 백그라운드를 재설정하기 때문이었다.
최소 지원 버전이 iOS 16이면 새로 생긴 수정자인 .scrollContentBackground를 사용할 수 있겠지만,
현재 프로젝트는 최소 지원 버전 15.0 이상이라 따로 대응이 필요했다.
관련 내용을 찾아보니 UICollectionReusableView와 관련이 있었다.
extension을 통해 ReusebleView의 background Color를 오버라이딩해줌
extension UICollectionReusableView { open override var backgroundColor: UIColor? { get { .clear } set {} } }
문제는 해결됐지만, 모든 리스트에서 백그라운드를 투명하게 하는 것이므로 이렇게 해도 되나 하는 생각이 들었다.
'iOS > Swift' 카테고리의 다른 글
SwiftUI 제스처가 작동하지 않을 때 (0) 2022.07.10 (RxSwift)API 호출 시점이 많을 때, 효율적으로 관리하기 (0) 2022.02.23 UICollectionView Compositional Layout (0) 2022.02.17 RxDataSources + 컬렉션 뷰(Swift) (0) 2022.02.16 Firebase Auth 적용하기(전화번호 인증, Swift) (0) 2022.02.04