是不是应该搞点前序什么的呢???

最近公司项目涉及二维码页面,公司虽不要求做了像支付宝那样,跳转到二维码页面后该页面的亮度需要很亮,从而实现扫描更快更准确。建议开发的时候还是自己选择,毕竟屏幕突然变亮很是辣眼睛

首先分析一下主要业务需求及处理逻辑,最后我把demo上传需要的小伙伴可以参考参考

需求分析:

1、跳转到二维码页面需要高亮退出页面后恢复系统亮度:

这个需求我们可以在二维码控制器中完成

// 我的二维码控制器
#import "QRCodeController.h"@interface QRCodeController ()
// 当前试图控制器的亮度
@property (nonatomic, readwrite, assign) CGFloat currentLight;
@end@implementation QRCodeController- (void)viewDidLoad {[super viewDidLoad];[self setTitle:@"我的二维码"];self.view.backgroundColor = [UIColor whiteColor];UIImageView *qRImg = [[UIImageView alloc]initWithFrame:CGRectMake(ScreenW*0.1, ScreenH/2 - (ScreenW * 0.4), ScreenW * 0.8, ScreenW * 0.8)];qRImg.image = [UIImage imageNamed:@"CodeImg"];[self.view addSubview:qRImg];
}
// 把将要进入二维码页面时的系统亮度保存
- (void)viewWillAppear:(BOOL)animated
{self.currentLight = [[USER_DEFAULTS valueForKey:SCREEN_BRIGHT] floatValue];[USER_DEFAULTS setBool:YES forKey:ISQRCONTROLLER];
}
// 进入控制器完成后,让控制器变量
- (void)viewDidAppear:(BOOL)animated
{[[UIScreen mainScreen] setBrightness: 0.7];//0.1~1.0之间,值越大越亮
}
// 退出控制器时恢复之前的亮度
- (void)viewWillDisappear:(BOOL)animated
{[[UIScreen mainScreen] setBrightness: self.currentLight];//0.5是自己设定认为比较合适的亮度值[USER_DEFAULTS setBool:NO forKey:ISQRCONTROLLER];
}

2、在二维码页面按”Home“键后需要还原系统原来的亮度,程序从后台变前台后当前页面是二维码页面此刻需要高亮

这个需求主要是在appDelegate的几个方法中处理,只要你熟悉几个代理的作用,到这里心里应该知道怎么实现了吧

// 正在使用应用的时候按“home”键,恢复系统的亮度
- (void)applicationWillResignActive:(UIApplication *)application {CGFloat brights = [[USER_DEFAULTS valueForKey:SCREEN_BRIGHT] floatValue];[[UIScreen mainScreen] setBrightness:brights];
}
//  应用成前台运行的时候,(即上次再使用APP的时候,突然按“home”键后,过一定时间又想用APP,如果是从二维码页面退出到后台,需要使二维码页面变亮(这时二维码的控制器中的几个方法不起作用,就靠这里了))
- (void)applicationDidBecomeActive:(UIApplication *)application {BOOL isQR = [[USER_DEFAULTS valueForKey:ISQRCONTROLLER] boolValue];if (isQR) {[[UIScreen mainScreen] setBrightness:0.7];}else{[USER_DEFAULTS setFloat:[[UIScreen mainScreen] brightness] forKey:SCREEN_BRIGHT];}
}
// 终止APP的时候 恢复记录的亮度(双击“home”键之后,强制杀死程序)
- (void)applicationWillTerminate:(UIApplication *)application {CGFloat brights = [[USER_DEFAULTS valueForKey:SCREEN_BRIGHT] floatValue];[[UIScreen mainScreen] setBrightness:brights];
}

总结:

朋友。。。如果你想直接通过copy以上代码实现你的需求的话,还不行,必须马上报错,原因是几个宏缺少,当然你也可以自己定义几个宏!

最最重要的一点是需要在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 这个代理中吧当前的系统亮度保存:

// 记录不是从二维码页面按“home”键退出到后台的[USER_DEFAULTS setBool:NO forKey:ISQRCONTROLLER];

下面是二维码控制器.h文件中的几个宏定义:

#import <UIKit/UIKit.h>// 设备尺寸的宽、高
#define ScreenW  CGRectGetWidth([UIScreen mainScreen].bounds)
#define ScreenH CGRectGetHeight([UIScreen mainScreen].bounds)// NSUserDefaults 数据缓存
#define USER_DEFAULTS [NSUserDefaults standardUserDefaults]// 用于设置屏幕的亮度
#define SCREEN_BRIGHT @"screenBrights" // 保存得系统亮度
#define ISQRCONTROLLER @"isQRController"// 记录是否是从二维码页面退到前台(即在二维码页面时,按"home"键)@interface QRCodeController : UIViewController@end

demo下载 需要真机测试,demo测试环境:Xcode9.0.1, iPhone6(10.3.3 || 11.0.3)

Swift方案实现

iOS(OC)—仿支付宝我的二维码页面系统亮度调整相关推荐

  1. iOS(Swift)—仿支付宝我的二维码页面系统亮度调整

    之前已经把OC的实现方案完成,现在我就不介绍逻辑了,想必懂swift的朋友一定懂得OC吧 这里只把资源的链接附上 OC_Demo下载地址 Swift_Demo下载地址 还是把主要的代码贴一下 1. A ...

  2. 实现微信小程序和支付宝小程序二维码合并

    实现微信小程序和支付宝小程序二维码合并,这样用户就可以通过同一个二维码进入微信或者支付宝啦 1.需要准备可以通过公网访问的服务器 2.微信小程序 打开微信小程序后台->开发(左边)->开发 ...

  3. 前端案例——2.仿淘宝关闭二维码案例

    <!-- 仿淘宝关闭二维码案例 --> <!-- 核心思路:利用样式的显示和隐藏完成,display:none隐藏元素:display:block显示元素. --> <! ...

  4. 微信,支付宝,收款二维码实时生成订单监控,免签支,付支付系统,个人收款,收款二维码...

    微信,支付宝,收款二维码实时生成订单监控,免签支,付支付系统,个人收款,收款二维码 微信和支付宝个人支付二维码生成与监控!有PHP接口回调,个人收款好助手! 实现收款即时到个人微信或支付宝账户!方便安 ...

  5. 利用xposed自动获得支付宝个人收款二维码链接和收款记录

    一.说明 现在的App一般都会带有支付功能,而现在比较流行的支付一般有支付宝.微信.银行卡等,一般情况下,应用开发者会直接对接支付宝.微信或者第三方支付公司的Api,以完成支付,但是都需要收取不小的费 ...

  6. js: 动画 筋斗云导航栏 仿淘宝关闭二维码

    筋斗云导航栏 <!DOCTYPE html> <html> <head lang="en"><meta charset="UTF ...

  7. Dom——仿淘宝关闭二维码

    仿淘宝关闭二维码 效果 整体的样式如上图所示.(素材图片可去淘宝保存图片) 当点击二维码广告旁边的叉叉,则会把广告关闭. 核心思路 点击叉叉,关闭整个广告,则需要的事件源有叉叉符号,整个广告盒子:事件 ...

  8. DOM ------ 仿淘宝关闭二维码

    仿淘宝关闭二维码 完成效果如下: //css代码.box{position: relative;width: 74px;height: 88px;border: 1px solid #ccc;marg ...

  9. 支付宝支付开发实践总结-Java-支付宝当面付-支付宝小程序-二维码生成-支付宝退款-APP调起支付宝支付

    虽然目前相对较火的支付方式是微信支付,但是本人更喜欢支付宝支付,有积分拿,还可以部分提现免手续费,每月还有信用卡还款免手续费额度,捐步数,蚂蚁森林等等,扯远了,总之,对我来说,微信用于沟通,支付宝是支 ...

最新文章

  1. 服务器500_BTA齐聚新基建——2030年百度智能云服务器数量超500万台
  2. thinkphp 3.2加载类
  3. 关于css选择器的问题 + * ~这三个有什么区别
  4. python制作英语字典_如何在Python中创建字典词典
  5. Play framework简介
  6. Ajax异步请求-简单模版
  7. javaweb学习总结(三十九)——数据库连接池
  8. Java NIO示例:多人网络聊天室完整代码
  9. 【推荐】8款神奇的动态网页布局及其制作方法
  10. Pycharm快捷键及常用设置【建议收藏】
  11. Robust Transmit Beamforming for Secure ISAC
  12. 数据结构c语言版陈越,数据结构 陈越
  13. Linux源码编译安装apache httpd2.4.48
  14. 利用博客提交作业的程序设计课程实践模式
  15. 苹果手机heic格式照片怎么转成jpg
  16. css之 vertical-align用法详解
  17. 聊聊 Docker 和 虚拟化技术
  18. 大爱无疆,德泰先行——刘煊苗与他的德泰堂
  19. Spring(二)IOC容器的初始化流程
  20. Spark-SQL简介

热门文章

  1. openpyxl打印设置
  2. 【云快讯】之五十一《惠普借道金山云正式进入中国》
  3. 【JavaScript高级】看完就理解面向过程编程和面向对象编程,不来了解一下?
  4. vivo春招java工程师Android方向实习生面试复盘
  5. 计算机教案教材分析,七年级《信息技术》下册教材分析及教案
  6. 阿里巴巴优酷视频增强和超分辨率挑战赛
  7. java循环引用讲解_Java循环引用
  8. 什么是steam游戏搬砖汇率差项目,真的赚钱吗?
  9. Android透明度
  10. mongoDB 文档插入