美文网首页
iOS13 DarkMode适配(Swift)

iOS13 DarkMode适配(Swift)

作者: 飞羽_ifeiyv | 来源:发表于2020-03-13 16:39 被阅读0次

封装颜色管理类


//
//  FyColor.swift
//  FyColor
//
//  Created by l on 2020/3/13.
//  Copyright © 2020 ifeiyv. All rights reserved.
//
import UIKit

class FyColors{
    
    ///深色模式适配  手动控制适配模式 启用 关闭(如非必要,可移除相关代码)
    static let isOpenDarkModel:Bool  = true
    
    
    //MARK: eg文字颜色
    //文字颜色  如果有多种文字颜色可以设置多个 eg: labelTextColor
    public class var labelTextColor: UIColor {
        return darkModeColor(dark:UIColor.white,light:UIColor.black)
    }
    //文字颜色  如果有多种文字颜色可以设置多个 eg:  buttonTextColor
    public class var buttonTextColor: UIColor {
        return darkModeColor(dark:UIColor.white,light:UIColor.black)
    }
    
    //文字颜色  如果有多种文字颜色可以设置多个 eg:  fieldTextColor
    public class var fieldTextColor: UIColor {
        return darkModeColor(dark:UIColor.white,light:UIColor.black)
    }
    
    //MARK: eg背景颜色
    //背景颜色  如果有多种文字颜色可以设置多个 eg: labelBgColor
    public class var labelBgColor: UIColor {
        return darkModeColor(dark:UIColor.black,light:UIColor.white)
    }
    //背景颜色  如果有多种文字颜色可以设置多个 eg:  buttonBgColor
    public class var buttonBgColor: UIColor {
        return darkModeColor(dark:UIColor.black,light:UIColor.white)
    }
    
    //背景颜色  如果有多种背景颜色可以设置多个 eg:  viewBgColor
    public class var viewBgColor: UIColor {
        return darkModeColor(dark:UIColor.black,light:UIColor.white)
    }
    
    //.........................................
    //根据需求增加相对应的颜色即可
    //darkModeColor(dark:UIColor.white,light:UIColor.black)
    //实际开发中不可能只有 UIColor.white,UIColor.black 两种颜色。
    //根据产品需求增加和修改对应的颜色
    
    
    //MARK:检测当前是否是深色模式
    class func isDarkStyle() -> Bool{
        if(!isOpenDarkModel){
            return false
        }
        if #available(iOS 13.0, *){
            let currentMode = UITraitCollection.current.userInterfaceStyle
            if(currentMode == .dark){
                return  true
            }
        }
        return false
    }
    //MARK: 适配 动态颜色
    class func darkModeColor(dark:UIColor,light:UIColor) ->UIColor{
        if(!isOpenDarkModel){
            return light
        }
        if #available(iOS 13.0, *){
            return UIColor{(trainCollection) -> UIColor in
                if trainCollection.userInterfaceStyle == .dark{
                    return dark
                }else{
                    return light
                }
            }
        }
        return light
    }
}



使用方式:(深色模式切换时,系统会重新渲染颜色,自动在设置好的两种颜色中进行切换)
   label.textColor = FyColors.labelTextColor
  
   label.backgroundColor = FyColors.labelBgColor
   
    //或者在此方法监听深色模式进行手动切换
   override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
       super.traitCollectionDidChange(previousTraitCollection)
   }

相关文章

  • 暗黑模式开发

    iOS13暗黑模式适配(项目开发版) iOS 13 DarkMode 暗黑模式 IOS 暗黑模式适配---基础适配

  • iOS13 DarkMode适配(Swift)

    封装颜色管理类 使用方式:(深色模式切换时,系统会重新渲染颜色,自动在设置好的两种颜色中进行切换)

  • uni-app做iOS的夜间模式

    iOS13适配暗黑模式/夜间模式/深色模式/暗黑主题(DarkMode)问题:1.监听Android深色或浅色模式...

  • DarkMode、WKWebView、苹果登录是否必须适配?

    级别:★☆☆☆☆标签:「DarkMode、WKWebView、苹果登录是否必须适配?」「DarkMode 是否适配...

  • iOS13 DarkMode适配(二)

    级别: ★☆☆☆☆标签:「iOS 13」「Dark Mode」作者: WYW审校: QiShare团队 笔者最近...

  • iOS13 DarkMode适配(一)

    级别: ★☆☆☆☆标签:「iOS 13」「Dark Mode」作者: WYW审校: QiShare团队 前言笔者...

  • iOS13 适配问题 看这一篇就够了

    技术参考: apple login IOS13适配-详细 iOS 13 适配(持续更新中) iOS13适配 掘金 ...

  • iOS 13适配

    技术参考: apple login IOS13适配-详细 iOS 13 适配(持续更新中) iOS13适配 掘金 ...

  • 关于iOS13 DarkMode的适配那些事儿

    一、为什么要调研这个暗黑模式的适配? 在2020年3月4日,苹果粑粑可能心情大好发了这么一个公告: 在这个公告里面...

  • iOS DarkMode适配

    iOS13中为我们带来了系统级别的暗黑模式。 而我们居然没能第一时间,系统全面的在我们项目中适配,实在是一大遗憾。...

网友评论

      本文标题:iOS13 DarkMode适配(Swift)

      本文链接:https://www.haomeiwen.com/subject/rjllshtx.html