由于夜间模式是控制一个全局的方法,所以需要用NSUserDefaults来实现.
NSUserDefaults是一个单例,在整个程序中只有一个实例对象,他可以用于数据的永久保存,而且简单实用,这是它可以让数据自由传递的一个前提,也是大家喜欢用它保存简单数据的一个主要原因。
1. 我们需要创建一个类方法(+方法)
+(BOOL)nowIsNight{
//创建NSUserDefaults.
NSUserDefaults *isNight = [NSUserDefaults standardUserDefaults];
给NSUserDefaults设置一个键值对
BOOL result = [isNight boolForKey:@"isNight"];
判断bool值
if (result) {
return YES;
} else{
return NO;
}
返回bool值
}
创建一个可以改变NSUserDefaults中的键值对的类方法
+(void)changisNight{
判断当前NSUserDefaults的值
if (NO == [self nowIsNight]) {
如果NSUserDefaults的值是NO, 取反 设置为YES;
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"isNight"];
NSLog(@"夜间模式");
}
else{
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"isNight"];
}
}
接下来写两个方法, 设置夜间模式时背景和字体的颜色(可以自己随意设置)
+(UIColor *)nightColor{
UIColor *color = [UIColor colorWithRed:26 / 255.0 green:26 / 255.0 blue:26 /255.0 alpha:1.0];
return color;
}
+(UIColor *)textNightColor{
UIColor *color = [UIColor colorWithRed:130 / 255.0 green:120 / 255.0 blue:130 /255.0 alpha:1.0];
return color;
}
例:
当夜间模式时
self.view.backgroundColor = [IsNight nightColor];
_label.textColor = [IsNight textNightColor];
----------------------------------------------------
方法:
只要在你需要改变的地方做一下判断[IsNight nowIsNight];
如果是YES开启夜间模式, 否则正常模式
-----------------------------------------------------
以上为一个简单的夜间模式的使用方法.