iOS/UIKIT

탭바 색상 설정

밤새는 탐험가89 2024. 9. 23. 13:19

 

// .label 과 .secondaryLabel 사용 (간결함)
tabBar.tintColor = .label
tabBar.unselectedItemTintColor = .secondaryLabel

 

 

tabBar.tintColor = .label / .secondaryLabel:

  • 간결함: UIColor의 미리 정의된 색상인 .label과 .secondaryLabel은 라이트/다크 모드에 맞게 자동으로 조정됩니다. 이 코드는 다크 모드 대응을 간단히 설정할 때 매우 유용합니다.
  • .label: 다크 모드에서는 흰색, 라이트 모드에서는 검은색 등, 시스템에 맞게 자동으로 설정된 텍스트 색상입니다.
  • .secondaryLabel: label보다 약간 더 흐린 색상으로, 라이트/다크 모드에 따라 변경됩니다.

 

// UIColor { traitCollection in } 사용 (더 많은 커스텀 가능)
tabBar.tintColor = UIColor { traitCollection in
    return traitCollection.userInterfaceStyle == .dark ? .white : .blue
}
tabBar.unselectedItemTintColor = UIColor { traitCollection in
    return traitCollection.userInterfaceStyle == .dark ? .lightGray : .gray
}

 

 

UIColor { traitCollection in ... }:

  • 유연성: 이 방식은 커스텀 동적 색상을 사용할 때 더 유연합니다. 사용자가 다크 모드/라이트 모드에서 완전히 다른 색상을 사용하고자 할 때 이 방식을 사용할 수 있습니다.
  • 직접적으로 색상을 지정하기 때문에 traitCollection을 이용해 원하는대로 색상 변경을 세밀하게 설정할 수 있습니다.