由于夜間模式是控制一個全局的方法,所以需要用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開啟夜間模式, 否則正常模式
-----------------------------------------------------
以上為一個簡單的夜間模式的使用方法.