본문 바로가기
프로그래밍/Xcode-iOS

iOS 13 widget dark mode 체크

by Mr-후 2020. 2. 28.
반응형

iOS13에서 다크모드 지원이 된다.

iOS SDK내부에 보면 iOS12부터 UserInterfaceStyle을 지원한다고 되어 있는데 지난번 포스팅에서 Info에 User Interface Style을 Light로 넣으면 만사 오케이(?) 라는 말을 따라 적용했는데 이미지나 UILabel, UIView에서 색을 임의로 지정하거나 변경 한 경우에는 다크모드 지원이 제대로 되지 않는 문제가 발생한다. 

따라서, 위젯에서 사용하는 UI컴포넌트의 배경색은 default로 잡고 Info에서 Interface Style을 제거한다.

그리고 이미지의 경우는 다음 코드를 이용해서 현재 단말의 다크모드 여부를 체크해서 그에 따라 변경을 하면 된다. 

if (@available(iOS 13.0, *)) {
    NSLog(@” traitCollection.userInterfaceStyle : %ld”, self.traitCollection.userInterfaceStyle);
  }
반응형