简体   繁体   中英

How to set default label color based on dark/light mode (in Swift)

I am trying to update my iOS app for dark mode, but am having trouble with setting the dark mode colors in code. Upon editing a UITextView, the color I want the text color to be white in dark mode, and black in light mode (which is default label color), but to my knowledge I do not know how to write this in code, how do I do it?

extension AddCardsVC: UITextViewDelegate {
    func textViewDidBeginEditing(_ textView: UITextView) {
        if #available(iOS 13.0, *) {
            definitionInput.textColor = UIColor.(need default label color)
        } else {
            definitionInput.textColor = UIColor.black
        }
        if(definitionInput.text == "organizing items into familiar, manageable units; often occurs automatically"){
            definitionInput.text = ""
        }
    }

}

或者使用UIColor.label获取系统标签颜色。

you have call this line of code , it works fine both dark mode and light mode. goodluck

label.textColor = .none

   textView.textColor =  UIColor { tc in
            switch tc.userInterfaceStyle {
            case .dark:
                return UIColor.white
            default:
                return UIColor.black
            }
        }

This is the easiest way, the UIColor can be passed a closure with traitCollection (TC) and the traitCollection has a property called userInterfaceStyle which tells if the user is using the dark mode, then you just implement switch statement to choose what color you wanna return

textView.textColor = UIColor.placeholderText

you just need to assign UIColor.systemBackground to your UITextView Text Color

textView.textColor =  UIColor.systemBackground 

it will automatically change text color white in dark mode and text color black in light mode

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM