簡易的主題切換功能
這個思路來自於我的一個朋友。
程式碼如下:
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
/*
*切換主題顏色使用
*/
@property (nonatomic,assign) BOOL isNightMode;
@end
#import "UIColor+Theme.h"
#import "AppDelegate.h"
@implementation UIColor (Theme)
+ (UIColor *)navigationBarColor
{
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
if (appDelegate.isNightMode == NO)
{
return [UIColor magentaColor];
}
return [UIColor darkTextColor];
}
@end
- (IBAction)changThemeColor:(id)sender
{
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
UISwitch *swit = (UISwitch *)sender;
if ([swit isOn])
{
appDelegate.isNightMode = YES;
}
else
{
appDelegate.isNightMode = NO;
}
[self.navigationController.navigationBar setBarTintColor:[UIColor navigationBarColor]];
}
我們在AppDelegate中建立一個全域性的BOOL
屬性變數isNightMode
,然後建立一個UIColor的類目,在這裡進行顏色切換管理。當我們改變isNightMode
的值時,自然也會改變對應顏色的值。
相關文章
- (九)主題切換
- 前端 javascript 練習題 -簡易年曆及tab切換簡易年曆【千鋒】前端JavaScript
- 小程式切換主題配色
- echarts 主題動態切換Echarts
- Flutter主題切換之flutter reduxFlutterRedux
- Web前端主題切換的幾種方案Web前端
- 實現Vue專案主題切換Vue
- 深色模式適配和主題切換模式
- Sass應用之實現主題切換
- Flutter Web網站之最簡方式實現暗黑主題無縫切換FlutterWeb網站
- Android 主題動態切換框架:PrismAndroid框架
- Redis主從切換Redis
- MySQL主從切換MySql
- mysql主備切換canal出現的問題解析MySql
- Flutter主題切換——讓你的APP也能一鍵換膚FlutterAPP
- Android 實現切換主題皮膚功能(類似於眾多app中的 夜間模式,主題包等)AndroidAPP模式
- win10主題切換時間設定在哪裡 win10主題切換時間設定方法Win10
- Flutter UI使用Provide實現主題切換FlutterUIIDE
- HeyUI元件庫 | 如何實現線上切換主題UI元件
- MySQL 主從切換延時高問題分析MySql
- 非常規 - VUE 實現特定場景的主題切換Vue
- Android 不同版本的主題切換方案/AndroidThemeChangeAndroid
- Vue學習10_Vue實現簡易的切換登入方式Vue
- 主備切換的準備工作
- 手工切換MySQL主從MySql
- Redis sentinel主從切換Redis
- mysql主從搭建切換MySql
- 主備切換(failover)AI
- 網站必備之簡繁切換功能實現網站
- mysql主從複製+主備切換MySql
- Mysql+keepalived主主切換薦MySql
- mysql 5.7+keepalived主從切換步驟簡述MySql
- 切換頁面主題樣式研究及less教程
- 如何透過css變數實現主題切換?CSS變數
- js修改css變數值實現主題切換JSCSS變數
- 簡單的Tab切換元件元件
- Redis叢集的主從切換研究Redis
- 主備切換的準備工作(二)