2011-11-22 46 views
13

我已成功地确保iPhone使用的是不自锁:使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,不应该使用,虽然...

+0

我建议你可以发布您的编辑为完整起见答案。 –

+0

我不能回答我自己的问题,认为我必须建立点或什么 –

回答

26

随着iOS 5的中在UIScreen类中有一个公共API。它有一个可以设置的brightness属性。对于那些你可能想要比实际背光灯更暗的场合,有一个属性可以自动放置一个半透明的层,使其看起来比在硬件中更暗淡。这与您在半透明UIView中提出的方法非常相似。应该注意的是,使用您的解决方案或软件调光API不应该与许多动画一起使用,因为您将支付所有alpha混合的性能损失。

UIScreen Class Reference

+0

这是一个更好的方式来做到这一点,谢谢。 –

+0

查看@ HashemAboonajmi对iOS 7+的回答。 – ToolmakerSteve

3

中的iOS 7及更高版本:

yourViewController.view.tintAdjustmentMode = UIViewTintAdjustmentModeDimmed;