일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- IOS
- 프로세스 스케줄링
- 가상 메모리
- 파일 시스템
- Apple Developer Academy
- 데드락
- 인프런
- 100 days of SwiftUI
- deadlock
- 알고리즘
- 동시성
- async
- 운영체제
- Codable
- Linked List
- @state
- SwiftUI
- 비동기
- forEach
- core data
- UserDefaults
- COLOR
- 오브젝트
- Swift
- 상호배제
- decode
- Algorithm
- 앨런
- struct
- 동기화
Archives
- Today
- Total
기어가더라도 제대로
[SwiftUI-기초] Custom Color, dark mode 본문
Custom Color
- SwiftUI에서 다양한 곳에 사용되는 색상? 물질 있음
- ShapeStyle 이라는 프로토콜
- Color, Meterial, Gradients 등등의 추상타입
- SwiftUI 에서 커스텀 컬러를 추가하고 싶은데, 크게 두가지 방법이 있음
- Assets에 추가
- 시각적으로 색상을 추가할 수 있음
- 코드리뷰할 때 어떤 색인지 알기 어려움
- 색상 추가를 이미지 추가하듯이 문자열로 해야함
- extension으로 추가
- 색상을 코드로 추가가능
- 깃헙에서 코드 확인 가능
- Assets에 추가
- 커스텀 색상을 코드로 추가하는 방법임
extension ShapeStyle where Self == Color {
static var darkBackground: Color {
Color(red: 0.1, green: 0.1, blue: 0.2)
}
static var lightBackground: Color {
Color(red: 0.2, green: 0.2, blue: 0.3)
}
}
// 사용
.background(.darkBackground)
- extension 선언하는 부분이 좀 어려운데 추가 설명 들어가겠음
- ShapeStyle 의 구체 타입 중에 메터리얼, 컬러, 그라디언트 등등이 있는데 그중에서 Color 일 때만 이 extension을 적용한다는 의미
선호 화면 모드 지정 - dark, light mode
- 기기가 다크 모드인지, 라이트 모드인지에 따라 앱의 배경이 바뀐다면, UI를 꾸리는 입장에서 좀 불편하다.
- 그래서 일관된 UI를 사용하도록 선언하는 방법이 있는데,
- 해당 뷰에서 선호하는 모드를 설정해주는 것이다.
NavigationView {
ScrollView {
}
.navigationTitle("Moonshot")
.background(.darkBackground)
.preferredColorScheme(.dark)
}
- 네비게이션 타이틀이 들어가는 자리에 위치
- .preferredColorScheme(.dark) 로 다크모드 우선으로 표시한다는 내용
'SwiftUI - 기초' 카테고리의 다른 글
[SwiftUI-기초] AppStorage - UserDefault 를 사용 (0) | 2022.11.05 |
---|---|
[SwiftUI-기초] onDelete() - List의 row 삭제하기(Array item delete) (0) | 2022.11.04 |
[SwiftUI-기초] .Sheet: modal 로 페이지 넘기기(dismiss) (0) | 2022.11.03 |
[SwiftUI-기초] class 인 인스턴스의 상태 보존(@StateObject, @ObservedObject) (0) | 2022.11.02 |
[SwiftUI-기초] @State가 쓸모 없어지는 지점에 대하여(class, struct) (0) | 2022.11.01 |
Comments