我已经设法确保iPhone不会自动锁定:
[[ UIApplication sharedApplication ] setIdleTimerdisabled: YES ];
但是如何在一段时间后使屏幕变暗?
谢谢…
编辑:
认为我自己找到了一个解决方案:
通过添加50%alpha的黑色视图,在视图控制器中使用此方法.确保将userInteractionEnabled = NO设置为将事件传递给底层视图.
- (IBAction)dim:(id)sender { UIView *dimView = [[UIView alloc] initWithFrame:CGRectMake(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,不应该被使用…
解决方法
在iOS 5中,UIScreen类中有一个公共API.它具有可设置的亮度属性.对于那些您可能想要比实际背光照明更暗的情况,有一个wantSoftwareDimming属性将自动放置一个半透明的图层,使外观比在硬件中更加暗淡.这与您使用半透明UIView的方法非常相似.应该注意的是,使用您的解决方案或软件调光API不应该与许多动画一起使用,因为您将使用所有Alpha混合来支付性能损失.
见UIScreen Class Reference