关于夜间模式

由于夜间模式是控制一个全局的方法,所以需要用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开启夜间模式, 否则正常模式

-----------------------------------------------------


以上为一个简单的夜间模式的使用方法.

你可能感兴趣的:(关于夜间模式)