当前位置: 移动技术网 > 移动技术>移动开发>IOS > IOS 仿支付宝支付屏幕亮度变化机制

IOS 仿支付宝支付屏幕亮度变化机制

2019年07月24日  | 移动技术网移动技术  | 我要评论

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 仿支付宝支付屏幕亮度变化机制,希望对大家有所帮助

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网