1.首先,在需要實現的界面viewDidLoad中先保存亮度沒有變化之前的亮度,因為這個界面消失之後還要變回原來的亮度,變化亮度也相當於用戶的一種設置,所以也要保存一下這個狀態,因為之後當APP在active和非active切換時候需要知道是否需要為用戶做這個功能
// 保存原來的亮度 [[NSUserDefaults standardUserDefaults] setObject:@([UIScreen mainScreen].brightness) forKey:@"brightness"]; // 保存狀態,需要為用戶變化屏幕亮度功能 [[NSUserDefaults standardUserDefaults] setObject:@YES forKey:@"ifNeedChangeLight"];
2.在viewDidAppear中設置需要的亮度
- (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; if ([UIScreen mainScreen].brightness < 0.8) { [UIScreen mainScreen].brightness = 0.8; } }
3.同理viewDidDisappear
- (void):(BOOL)animated { [super viewDidDisappear:animated]; // 還原 [UIScreen mainScreen].brightness = [[[NSUserDefaults standardUserDefaults] objectForKey:@"brightness"] floatValue]; [[NSUserDefaults standardUserDefaults] setObject:@NO forKey:@"ifNeedChangeLight"]; }
4.當從底部滑起操作欄和退出app到主界面需要進行恢復和設置相應操作
- (void)applicationWillResignActive:(UIApplication *)application { if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"ifNeedChangeLight"] boolValue]) { [UIScreen mainScreen].brightness = [[[NSUserDefaults standardUserDefaults] objectForKey:@"brightness"] floatValue]; } } - (void)applicationDidBecomeActive:(UIApplication *)application { if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"ifNeedChangeLight"] boolValue]) { if ([UIScreen mainScreen].brightness < 0.8) { // 顏色需要漸變的話需要另外再寫 [UIScreen mainScreen].brightness = 0.8; } } }
5.如果需要亮度漸變效果網上有實現的函數,設置亮度直接調函數就可以了
以上所述是小編給大家介紹的IOS 仿支付寶支付屏幕亮度變化機制,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對本站網站的支持!