首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >[UIScreen mainScreen].brightness键值可观测吗?

[UIScreen mainScreen].brightness键值可观测吗?
EN

Stack Overflow用户
提问于 2014-09-29 23:08:47
回答 2查看 1.5K关注 0票数 0

这就是我在这个iO7或以后的应用程序中需要做的:

当用户打开我的应用程序,我想得到屏幕亮度值,并打开所有的亮度。当用户离开应用程序时,我希望亮度恢复到以前的值。

到目前为止,我使用的是:

代码语言:javascript
复制
-(void) applicationWillResignActive
{
    [[UIScreen mainScreen] setBrightness:oldScreenBrightness];
}

-(void) applicationDidBecomeActive
{
    screenBrightness = [UIScreen mainScreen].brightness;
    [[UIScreen mainScreen] setBrightness:1.0];
}

这很好,除非用户在使用应用程序时通过控制中心调整亮度,在离开应用程序时,它仍然会回到原来的亮度。

因此,我想知道,如果我可以键值,观察UIScreen mainScreen.brightness,并检查它是否被用户更改以省略,将其更改回旧值.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-29 23:15:44

我觉得你搞得太复杂了。在您的出路,检查当前的亮度水平。如果是1.0,就把它切换回你开始时得到的任何东西。如果它不是1.0,您可以相当自信地认为用户将其更改为其他东西,所以什么也不做。

也可能最好是为屏幕亮度创建某种常量,以提高代码的可读性和意图。

代码语言:javascript
复制
static const CGFloat kAppConfiguredBrightness = (CGFloat)1.;

-(void)applicationWillResignActive
{
  UIScreen* screen = [UIScreen mainScreen];
  if (screen.brightness == kAppConfigredBrightness) {
    screen.brightness = oldScreenBrightness;
  }
}
票数 1
EN

Stack Overflow用户

发布于 2015-09-17 03:04:18

根据Apple Developer的文档:

只有在应用程序处于活动状态时,应用程序所做的亮度更改才能有效。当应用程序不在前台时,系统会在适当的时候恢复用户提供的亮度设置。因此,如果您更改了此属性的值,则不需要记录之前的值,并在应用程序移到后台时恢复它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26110334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档