首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS程序框架设计之皮肤切换功能 原

iOS程序框架设计之皮肤切换功能 一、引言         移动应用的开发中,有时我们会需要例如更换皮肤此类的功能,andorid采用xml配置UI的方式,这个问题或许还容易解决些,iOS的主要UI逻辑则是在代码中控制的...作为这个通知的监听者         3、设计一个皮肤的model类         4、将controller中有关皮肤设置的属性从model中取         5、在切换皮肤前更改皮肤model...首先最上面是我设计的一个切换主题的manager,我这里的设计有个缺陷,我将manager和主题配置相关的model混合在了一起,写的时候简单了些,可这给框架的逻辑上带来了混乱,所以我在图中使用曲线和虚椭圆将其分离...]; } //子类实现如下方法 -(void)useYHTopicToCreatViewWithModel{      }         到目前,我们已经可以顺利接收到主题切换的通知,可是要所有子类都步伐一致的执行相同一个操作...[_registBtn setTitleColor:model.btnTextColor forState:UIControlStateNormal];      } 我简单写了一些界面,不论任何地方切换皮肤

55840
您找到你想要的搜索结果了吗?
是的
没有找到

iOS皮肤适配

HJThemeDataModel new]; model.colorDic = colorDic; model.imageDic = imageDic; return model; } /// 设置默认主题...@"light"]; } 2、皮肤使用 // 导入头文件 #import "HJThemeManager.h" // 设置当前皮肤切换 皮肤为 @"light" [[HJThemeManager...再关联属性的时候添加一个通知监听,用于切换皮肤时,发送通知,然后再次调用缓存的方法和参数,进行颜色和图片的更换。...b、皮肤适配模式,即带有 theme:// 字符串,就会用 themes 字典保存 系统的方法setBackgroundColor: 方法和参数colorKey 和 themeName,当切换皮肤时,再次调用...b、皮肤适配模式,即带有 theme:// 字符串,就会用 themes 字典保存 系统的方法setImage: 方法和参数imageKey 和 themeName,当切换皮肤时,再次调用 setImage

72720

vue实战-实现换主题皮肤功能

现在的app和pc网站做的越来越花哨,但是有时候用户并不喜欢你给他挑选好的主题颜色,这个时候就需要一个换皮肤的功能了。 那么我们怎么在vue中实现这个换皮肤的功能呢? ?...我们要换皮肤的话其实就是动态的去切换css,所以在这里实现换皮肤其实也就是动态的更改html中引用css的路径,使得当用户选择了不同的皮肤,页面引用的css不同从而呈现的样式也不一样。...优化策略 其实在实际场景中,需要通过切换皮肤来改变css的元素占所有css的比重并不会很多,因此我们需要把需要通过切换改变的css单独提取出来,在动态改变css路径时只需要去改变这个控制皮肤的css...我们将换皮肤功能抽成一个组件theme-switch。pc端使用iview,手机端使用了vant。一共有3套皮肤用于切换。 ?...以上工作完成之后已经可以动态的切换html中皮肤相关的css路径了。接下来就需要我们在需要切换css的地方引用具体的class并且写三套样式分别放在theme中的css文件里。

2.1K20

vue项目主题切换

实际项目中经常用到主题切换,浅色系,深色系切换 主要涉及的变化 1、css样式 2、图表涉及到js中颜色的切换 3、图片的切换 主要的实现原理是,2套css样式,2套js文件,如果需要切换图片的情况也需要...2套图片,页面上有个切换按钮,点击的时候切换css样式和js文件,以及切换图片,css文件切换时会立即起效,但是js没有效果,需要重新刷新下,采用的是点击按钮的时候直接reload,切换样式文件和js文件都在初始化时进行...stylesheet" id="csId" type="text/css" href="/lightTheme.css"> 点击按钮元素与事件 <i class="el-icon-edit" title="<em>切换</em><em>主题</em>...$store.commit("changeTheme",newTheme) location.reload() }, vuex中保存设置的主题 state: { curTheme...darkTheme.css" } cssElement.href = newThemePath cssMy.href = myThemePath },  从计算属性中获取当前主题

1.1K20

iOS开发之App主题切换完整解决方案(Swift版)

本篇博客就来介绍一下iOS App中主题切换的常规做法,当然本篇博客中只是提到了一种主题切换的方法,当然还有其他方法,在此就不做过多赘述了。...本篇博客中所涉及的Demo完全使用Swift3.0编写完成,并使用iOS的NSNotification来触发主题切换的动作。本篇博客我们先对我们的主题系统进行设计,然后给出具体实现方式。...一、主题切换效果展示 先入为主,接下来我们先看一下本篇博客所涉及Demo的最终运行效果。为了看到整体主题切换的效果,所以我们添加了一个主页以及主页Push进去的子页面。...当然Demo比较简单,但是麻雀虽小,五脏俱全,用来了解App的主题切换足以。当然有更好的实现方式,欢迎留言交流。 ?  二、设计主题切换功能的整体结构 看完效果后,接下来我们就进入了设计阶段。...在主题切换时,需要修改属性的控件我们需要进行处理,使其监听主题切换的通知,并根据通知内容修改控件的属性。在本部分我们就以SuperViewController为例。

1.7K101

Flutter主题切换 flutter redux

State数据 2.Widget通过Action触发一种新的行为 3.Reducer根据收到的Action更新State 4.更新Store中的State绑定的Widget 根据以上流程,我们实现项目中的主题切换功能...项目集成flutter redux库 创建State 创建一个State对象AppState,用于储存需要共享的主题数据,并且完成AppState初始化工作,如下面代码所示 class AppState...return AppState( themeData: themeReducer(state.themeData, action), ); } 而themeReducer将ThemeData和所有跟切换主题的行为绑定在一起...ThemeData themeData; RefreshThemeDataAction(this.themeData); } RefreshThemeDataAction的参数themeData是用来接收新切换主题...> store) { return _ViewModel( themeData: store.state.themeData, ); } } 用户行为 最后,只需要添加切换主题部分的代码即可

81910

Android主题换肤 无缝切换

Android的主题换肤 ,可插件化提供皮肤包,无需Activity的重启直接实现无缝切换,可高仿网易云音乐的主题换肤。...这个链接是本次的Demo打包出来的样本SkinChangeDemo,可以去下载下来先试试效果,皮肤文件需放到存储卡的根目录下。 关于Android的主题换肤都是个老生常谈的问题了。...下面先来几张效果图来爽一下 这个是网易云音乐的换肤界面,他提供了几个默认的,也提供了可以在线下载的主题,他的切换效果还是非常赞的,用过这个软件的同学肯定是知道的。...下面就正式开始介绍怎么去做这个主题换肤吧。...这里只需注意 这里的资源文件名字一定要和原项目中的相同,并且只用包含那些在皮肤更改时需要改变的那些就行了!例如我的这个Demo就只是简单对上面的三种颜色做了简单的切换

2.8K50

前端主题切换方案详解

前端主题切换方案 现在我们经常可以看到一些网站会有类似暗黑模式/白天模式的主题切换功能,效果也是十分炫酷,在平时的开发场景中也有越来越多这样的需求,这里大致罗列一些常见的主题切换方案并分析其优劣...在做主题切换技术调研时,看到了网友的一条建议: 因此下面的几个方案主要是针对变量来做样式切换 方案3:CSS变量+类名切换 灵感参考:Vue3官网 在Vue3官网有一个暗黑模式切换按钮,点击之后就会平滑地过渡...优点: 不用重新加载样式文件,在样式切换时不会有卡顿 在需要切换主题的地方利用v-bind绑定变量即可,不存在优先级问题 新增或修改主题方便灵活,仅需新增或修改JS变量即可,在v-bind()绑定样式变量的地方就会自动更换...优点: 不用重新加载样式文件,在样式切换时不会有卡顿 在需要切换主题的地方利用mixin混合绑定变量即可,不存在优先级问题 新增或修改主题方便灵活,仅需新增或修改SCSS变量即可,经过编译后会将所有主题全部编译出来...方案/主题样式 固定预设主题样式 主题样式不固定 方案1:link标签动态引入 √(文件过大,切换延时,不推荐) × 方案2:提前引入所有主题样式,做类名切换 √ × 方案3:CSS变量+类名切换 √(

39420

博客添加暗色主题切换功能,从主题切换聊聊前后端cookies的使用

你看,云顶之奕都元素崛起了,各个英雄都穿上了元素皮肤,我还有什么理由不给自己博客来一套暗色主题呢,其实这才是我更新暗色主题的真正动力,哈哈哈哈…… 主题切换思路 既然要上线主题切换功能,那必然先要搞清楚怎么可以切换主题...A:主题其实就是一套静态资源(css、js、img),大部分的主题切换就是换了一套 css 样式而已,所以,想要做到主题切换,需要提供一套有别于现有的主题 css 样式。...A:有了新的主题样式,想要做到切换的功能,可以通过 js 实现,具体就是 js 定义方法,界面搞个主题切换的按钮,点击按钮触发切换方法,把新的主题 css 文件加载到当前页面即可。...cookies的使用 既然实现了主题切换,那么如何存储用户切换主题状态,这是最重要的一点,毕竟你总不能让用户每次刷新页面都需要重新切换主题吧。...上面这段代码里面只是实现了通过按钮切换主题的方法,这个只能实现当前页主题切换,但是如果跳转到其他页面,主题还是不会切换,所以我后来写了一个其他页面主题状态保持的方法,如下: //判断主题策略 $(function

50710

iOS横竖屏切换

横竖屏切换实例 竖屏界面如何present横屏界面 竖屏present横屏是很普遍的场景,比如说视频播放场景的全屏切换,就可以在当前竖屏的界面present一个横屏播放界面的方式,实现横竖屏切换。...横屏竖切换机制分析 前面的实例介绍了如何支持切换,但是也产生一些疑问: 工程配置文件也没有设置横屏,为什么后面就能支持横屏?...工程配置、AppDelegate、UIViewController这三者,在横竖屏切换过程的关系是什么? 自动旋转和手动旋转有什么区别? .......仅仅知道切换适配代码,是无法形成横竖屏切换理解,也就很难回答上述的问题。 由于没有找到解释横竖屏切换机制的官方文档,以下根据自己的经验对这个切换的机制进行分析。...size withTransitionCoordinator:(id )coordinator API_AVAILABLE(ios

2.4K20

win10 uwp 切换主题

本文主要说如何在UWP切换主题,并且如何制作主题。 一般我们的应用都要有多种颜色,一种是正常的白天颜色,一种是晚上的黑夜颜色,还需要一种辅助的高对比颜色。这是微软建议的,一般应用都要包含的颜色。...然而微软给我们的切换,简单只有亮和暗。 那么问题就是我们如何切换我们的主题。...在这前,我们先说如何制作主题,其实主题就是Dictionary,我们在解决方案加上两个文件夹,一个是View,一个是ViewModel,其中View将会放主题,如果主题比较多,还可以在View加一个文件夹...ElementTheme.Dark : ElementTheme.Light; } 运行可以看到点击就变成白天颜色,再点击就变为黑暗,这就是uwp切换主题,这样主题颜色很少,只有两个。...参见:https://embracez.xyz/xaml-uwp-themes/ 我们总是会使用白天,夜间模式,那么我们需要切换主题,UWP切换主题简单 下面使用我做的一个按钮 夜间白天主题按钮 NightDayThemeToggleButton

1K10

win10 uwp 切换主题

本文主要说如何在UWP切换主题,并且如何制作主题。 一般我们的应用都要有多种颜色,一种是正常的白天颜色,一种是晚上的黑夜颜色,还需要一种辅助的高对比颜色。这是微软建议的,一般应用都要包含的颜色。...然而微软给我们的切换,简单只有亮和暗。 那么问题就是我们如何切换我们的主题。...在这前,我们先说如何制作主题,其实主题就是Dictionary,我们在解决方案加上两个文件夹,一个是View,一个是ViewModel,其中View将会放主题,如果主题比较多,还可以在View加一个文件夹...ElementTheme.Dark : ElementTheme.Light; } 运行可以看到点击就变成白天颜色,再点击就变为黑暗,这就是uwp切换主题,这样主题颜色很少,只有两个。...参见:https://embracez.xyz/xaml-uwp-themes/ 我们总是会使用白天,夜间模式,那么我们需要切换主题,UWP切换主题简单 下面使用我做的一个按钮 夜间白天主题按钮 NightDayThemeToggleButton

72230
领券