切换皮肤的实现

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC"; color: #ffffff }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #eb905a }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #4bd156 }
p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC"; color: #eb905a }
p.p5 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC"; color: #4bd156 }
span.s1 { font: 18.0px Menlo; color: #8b87ff }
span.s2 { }
span.s3 { color: #8b87ff }
span.s4 { font: 18.0px "PingFang SC" }
span.s5 { font: 18.0px Menlo }

详细代码请前往: https://git.oschina.net/null_248_6948/skinChange

1.界面搭建

#01.添加三个按钮到StackView,位置设为-44

#02.托线

#03.设置tag

#04.动画执行

// skinViewTopCons.constant = skinViewTopCons.constant == 0 ? -44 : 0

// self.view.layoutIfNeeded()

2.基本实现:

#01.按照提供的图片用对应方法设置皮肤

// bgImageView.image = UIImage(named: "skin/\(skinName)/back.png")

// iconButton.setImage(UIImage(named: "skin/\(skinName)/icon.png"), for: .normal)

#02.把当前皮肤存到沙盒中

// UserDefaults.standard.set(skinName, forKey: kSkinKey)

// 强制同步当前皮肤到沙盒

#03.设置默认皮肤(若沙盒中存有皮肤则默认的无效)

// UserDefaults.standard.object(forKey: kSkinKey) as? String ?? "chunjie"

3.多控制器换肤:

#01.新建OtherViewController.swift

// 用于显示跳转到的另一个界面的皮肤,保留之前切换好的皮肤

#02.新建HJJSkinTools.swift

// 1.设置启动显示皮肤(重写方法)

// 2.此处用于处理:传入图片名后返回对应的图片

4.切换背景颜色:

#01.在工具类中写一个类方法,用于判断处理回调颜色

#02.控制器中接收,并展示颜色到labelView上

其中可能出现的bug:

时间: 2024-08-03 03:33:14

切换皮肤的实现的相关文章

Android应用切换皮肤功能实现(二)

原文地址http://www.apkbus.com/forum.php?mod=viewthread&tid=149034&highlight=%E7%9A%AE%E8%82%A4 上次写完应用切换皮肤功能实现的时候,有网友提了些问题.我觉得上次说的还不够详细吧.现在接着再写详细点.这次再在布局里增加了三个按钮图片的设置和一个字体颜色的设置.1.其实上次只是讲到了切换皮肤时,只是替换了图片资源,其实连布局都可以切换.当然布局的切换要是apk类型的皮肤包才行.首先我们写好3个布局,把三个按钮

Android应用切换皮肤功能实现

原文地址:http://www.eoeandroid.com/thread-318159-1-1.html 现在大多数android应用都支持切换皮肤的功能.比如千千静听,墨迹天气等等.本文介绍两种切换皮肤的方法. 1.第一种是通过安装皮肤apk的方式. 当安装了皮肤apk包之后,主程序只需要读取皮肤apk包里的图片资源.就可以实现切换皮肤了. 要获取apk皮肤包里的图片资源,需要获取到皮肤apk包的上下文Context. [mw_shl_code=java,true] try { curren

网页换肤效果 系统界面切换皮肤样式

近期需要整理后台系统的界面皮肤样式.就是看一种风格样式习惯了,想换点别的样式界面 思考了一段时间,开始想偏了,想直接在现有样式直接修改.比如:红色,绿色. 思考后,还是写两套皮肤样式,进行切换吧. 默认加载原有的样式文件,点击按钮,切换对应的即可.不必修改结构,直接修改不同的样式属性. 以下为 核心代码片段 <link id="skinStyle" href="../styles/style.css" type="text/css" rel

开源中国源码学习(五)——切换皮肤(日间模式和夜间模式)

在开源中国客户端源码的侧滑菜单栏里有一个模式切换的选项,可以完成夜间模式和日间模式的相互转换. 一.功能介绍 在侧滑菜单栏里点击日间或者夜间后,客户端的皮肤可以发生变化,来达到保护眼睛的作用. 二.详细介绍 这是在MainActivity的onCreate方法中的一段代码,这段代码完成了读取本地配置中存储的日间模式和夜间模式信息,从而回显到客户端中. 读取本地配置信息,在应用启动时,回显至客户端 @Override protected void onCreate(Bundle savedInst

【锋利的JQuery-学习笔记】切换网页皮肤-且保存于Cookie

切换网页皮肤: html片段: <head> <link rel="stylesheet" href="styles/skin/skin_0.css" type="text/css" id="cssfile" /> </head> <ul id="skin"> <li id="skin_0" title="蓝色"

iOS程序框架设计之皮肤切换功能 (白天与夜间效果)

iOS程序框架设计之皮肤切换功能 一.引言 移动应用的开发中,有时我们会需要例如更换皮肤此类的功能,andorid采用xml配置UI的方式,这个问题或许还容易解决些,iOS的主要UI逻辑则是在代码中控制的,如果没有一个强大的框架方案,这个问题将变得非常棘手.网上也有很多诸如此类功能的优秀案例与框架,在这篇博客中,我与大家分享下我的解决方案,其中如果有不恰或者糟糕之处,希望与高人一起交流. 二.设计思路与框架 首先我的设计思路是采用通知的方式,原理可以如下理解为以下几步: 1.在系统的通知中心注册

Android 实现切换主题皮肤功能(类似于众多app中的 夜间模式,主题包等)

首先来个最简单的一键切换主题功能,就做个白天和晚上的主题好了. 先看我们的styles文件: 1 <resources> 2 3 <!-- Base application theme. --> 4 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 5 <!-- Customize your theme here. --> 6 &l

iOS实用技巧 - 简易实现多皮肤功能

前言:不记得谁说的了,中国的用户大概是世界上最喜欢多皮肤功能的用户了.我很讨厌写安卓程序,图形界面设计工具及其难用,还不如手写,编辑器慢如蜗牛,智能提示总是跟不上我输入的速度,相同的功能,安卓的代码量至少是iOS的三倍,每写一行代码,都觉得自己的手指在滴血.可是安卓灵活统一的style功能确实很贴心!5之前,iOS平台上实现相同的功能一直没有个比较好的办法. iOS5之后,苹果将所有界面组件的设定,都绑定在一个叫UIAppearance的协议上了,你可以简单的通过UIAppearance设定组件

关于三种『应用内主题切换』开源项目的一点思考

Theme 遍历View 开源项目 MultipleTheme Colorful AndroidChangeSkin 我的思考 参考文章 关于我 这里讨论的只是白天.夜晚主题切换这种场景,不涉及外部资源加载. 现在要给App添加夜晚主题,所以就需要选择一种应用内部更换主题的实现方案,目前来说,比较常见的几种方式如下: Theme 设置Theme来切换不同主题. 优点:利用系统自带的机制实现,根据标志位setTheme()即可. 缺点:在主题切换界面不重启的情况下,不能自动完成界面主题的刷新. 遍