How to support Dark Mode in iOS apps
이번 iOS 13에서 dark mode 가 추가 되었다. 아.......
뭐 미리 준비를 했으면 됐지만 준비 안 했다..
일단 다크 모드 막는 법 부터 알아 보자.
1) info 파일 안에 User Interface Style 을 추가를 한다.
Type은 String , value는 Light 적으면 끝..간단함..그리고 모두에게 비밀로 하고 편히 걱정없이 일을 한다.
2) 각각의 뷰컨트롤러에 세팅을 한다.
self.overrideUserInterfaceStyle = .light 로 각 뷰컨틀로러에 넣어주면 된다. 귀찮다..이건..1번이 제일 좋다.
override func viewDidLoad() {
super.viewDidLoad()
self.overrideUserInterfaceStyle = .light
// Do any additional setup after loading the view.
}
3) "뭐 dark mode 모두 대응해주겠다" 라는 분이 계시다면 이 방법을 추천한다.
Asset Catalog를 추가한다. 그리고 알아서 이름을 변경한다.
)
캡쳐한 화면대로 따라하면 된다.
일단 Asset 의 이름을 정하고 1번 → 2번을 눌러서 생성을 한다.
그리고 3번의 이름을 정하고 4번을 클릭하면 none, (Any, Dark), (Any, Light, Dark) 이렇게 세 분류가 나온다. 클릭 해보면 어떻게 되는지 알게 될 것이다.
나는 일단 가운데 Any, Dark를 클릭해서 두 가지의 경우를 만들었다. 그리고 각각의 기본과 dark 모드를 설정했다.
4) UIColor Extension
컬라를 선택하면 Named color에 등록된 컬러가 나와서 설정해주면 된다.
그리고 코드로 등록된 컬러를 사용하고 싶으면 UIColor extension으로 UIColor(named: "") 이걸 통해서 등록해주면 된다.
import Foundation
import UIKit
public extension UIColor {
static let C_blue = UIColor(named: "C_blue")
static let C_blue_only = UIColor(named: "C_blue_only")
static let C_white = UIColor(named: "C_white")
static let C_red = UIColor(named: "C_red")
}
코딩으로 적용을 했을 때는
@IBOutlet weak var testView : UIView!
override func viewDidLoad() {
super.viewDidLoad()
self.testView.backgroundColor = UIColor.C_red
// Do any additional setup after loading the view.
}
끝..
런타임때 이런식으로 유저가 변경하면 알아서 색을 바꿔준다.
저는 일단 대응을 미리 못한 잘못이 있기 때문에 1번으로 대응을 했고 디자이너와 차차 대응을 해야겠다.
언제 다하냐..
'iOS' 카테고리의 다른 글
나만의 코딩 스탠다드 계속 업데이트 할 것이다.(Siwft, Objectvie C, iOS, xcode) (0) | 2019.10.18 |
---|---|
ARC, 순환참조와 소유권 지시어 (iOS, xcode) (0) | 2019.10.11 |
아이폰 푸쉬 노티피케이션 싸이트 (0) | 2013.01.17 |
아이폰 소스 공개 싸이트~ (0) | 2010.08.25 |
1.Hello~ (0) | 2010.08.24 |