이전 글에서 작성했던 커스텀 Color Picker를 사용하다 보니,
글자색이 검정색인데 배경색이 어두운 경우 글자의 가시성이 떨어지는 문제를 발견했습니다.
이를 해결하기 위해 Color Picker에서 추출한 색상을 기반으로 글자색을 자동으로 결정하는 기능을 추가했습니다.
디자이너와 협업하여 가시성을 확보할 수 있는 기준점을 잡았습니다.
이러한 개선을 통해 카드의 색상과 상관없이 글의 가독성을 높일 수 있었습니다.
전체 코드
private func changeColorsAfterCardColorChange(){
let cardColor = card.cardColor
let r = cardColor.components.r
let g = cardColor.components.g
let b = cardColor.components.b
let cmax = max(r, g, b)
let cmin = min(r, g, b)
let lightness = ((cmax+cmin)/2.0)*100
var hue: CGFloat = 0.0
var saturation: CGFloat = 0.0
var brightness: CGFloat = 0.0
var alpha: CGFloat = 0.0
UIColor(cardColor).getHue(&hue, saturation: &saturation, brightness: &brightness, alpha: &alpha)
lyricsColor = lightness >= 60 ? .black : .white
if( 0.0 <= brightness && brightness < 0.70){
lyricsContainerColor = Color(UIColor(hue: hue, saturation: saturation, brightness: brightness+0.1, alpha: 1.0))
}
else if( 0.70 <= brightness && brightness <= 0.85 ){
lyricsContainerColor = Color(UIColor(hue: hue, saturation: saturation, brightness: brightness+0.15, alpha: 1.0))
}
else{
lyricsContainerColor = Color(UIColor(hue: hue, saturation: saturation, brightness: brightness-0.15, alpha: 1.0))
}
}
예시 화면
'iOS' 카테고리의 다른 글
백그라운드 상태에서, 알람 소리 켜기 (1) | 2024.03.20 |
---|---|
커스텀 Color Picker 만들기 (0) | 2024.03.19 |
사용자 경험을 위한 최소버전 설정 (0) | 2024.03.19 |
SwiftUI - 토스페이먼트, 결제 동의 관련 (1) | 2024.03.19 |
이미지 리사이징으로, 저장용량 줄이기 (1) | 2024.03.19 |