728x90
다크모드를 이용하는 방법은 여러가지가 있지만, 본인의 app target이 13.0 이상을 지원하고 있다면 Asset에서 image set을 다크, 라이트 모드에 따라 지원해주면 쉽게 해결 가능합니다.
필자의 경우도 13.0 이상의 앱을 개발중이기에 위와 같은 방법으로 상당 부분 해결하였지만, 문제는 해당 문제를 코드로 구현한 부분에서는 시스템 자체 모드 변경에 맞게 다크 모드로 바로 변경이 되지 않더군요.
해당 문제는
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
super.traitCollectionDidChange(previousTraitCollection)
changeColor(type: textBolder) // 이 자리에 본인이 원하는 메소드 입력
}
traitCollectionDidChange를 override 해줌으로서 해결이 가능했습니다.
func changeColor(type: UIImageView) {
if traitCollection.userInterfaceStyle == .dark {
type.layer.borderColor = #colorLiteral(red: 0.07449612767, green: 0.07451748103, blue: 0.07449635118, alpha: 1).cgColor
} else {
type.layer.borderColor = #colorLiteral(red: 0.9489133954, green: 0.9490793347, blue: 0.948915422, alpha: 1).cgColor
}
}
저는 간단히 if문을 활용하여 시스템 모드가 변경될 시에 색깔을 어떻게 변경할지에 대해 함수로 표현하여 해당 문제를 해결하였습니다.
728x90
'Dev > iOS' 카테고리의 다른 글
[Dev, iOS] 백그라운드 진입 시 민감한 정보 가리기 (0) | 2021.12.21 |
---|---|
[Dev, iOS] 배경을 Gradient로 색칠하기 (0) | 2021.12.06 |
[Dev, iOS] segue로 넘겨 받은 데이터를 다시 전달하는 법 (0) | 2021.01.22 |
[Dev, iOS] iOS 앱에 카카오 애드핏(Kakao AdFit) 연동 및 구현하기 (0) | 2021.01.15 |
[Dev, iOS] 네트워크 상태 확인하기 (0) | 2021.01.11 |