使iPhone屏幕变暗

14
我已经成功地防止 iPhone 自动锁定,使用以下方法:
    [[ UIApplication sharedApplication ] setIdleTimerDisabled: YES ];

如何在一定时间后使屏幕变暗?

谢谢...

编辑:

我想我已经找到了解决方案:

在您的视图控制器中使用此方法,通过添加50%透明度的黑色视图来进行调暗。确保将userInteractionEnabled = NO设置为将事件传递给底层视图。

- (IBAction)dim:(id)sender {
UIView *dimView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
dimView.backgroundColor = [UIColor blackColor];
dimView.alpha = 0.5f;
dimView.userInteractionEnabled = NO;
[self.view addSubview:dimView];
}

或者,可以冒险尝试(但是苹果可能会在提交时拒绝):

[(id)[UIApplication sharedApplication] setBacklightLevel:1.0f];

那是一个私有 API,不应该被使用...


出于完整性的考虑,我建议您将您的编辑作为答案发布。 - Ryan Wersal
我还不能回答自己的问题,可能需要积累一些点数或其他东西。 - Adam Waite
2个回答

26
自 iOS 5 起,UIScreen类中有一个公共API。它具有可设置的brightness属性。对于那些希望比实际背光更暗的情况,有一个wantsSoftwareDimming属性,它会自动放置一个半透明层,使外观看起来比硬件能够做到的更暗。这与您使用半透明的UIView所采用的方法非常相似。需要注意的是,不应该在许多动画中使用您的解决方案或软件调光API,因为所有的Alpha混合将付出性能损失。
请参阅UIScreen类参考

请参考@HashemAboonajmi的答案,适用于iOS 7+。 - ToolmakerSteve

3

iOS 7及更高版本:

yourViewController.view.tintAdjustmentMode = UIViewTintAdjustmentModeDimmed;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接