14

以下を使用して、iPhoneが自動ロックされないようにすることができました。

    [[ UIApplication sharedApplication ] setIdleTimerDisabled: YES ];

しかし、一定時間後に画面を暗くするにはどうすればよいですか?

ありがとう...

編集:

自分で解決策を見つけたと思います:

View Controller でこのメソッドを使用して、アルファ 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];
}

または、それを危険にさらす可能性があります (ただし、Apple は送信時に拒否する場合があります):

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

これはプライベート API であり、使用すべきではありません...

4

2 に答える 2

26

iOS 5 の時点で、UIScreenクラスに公開 API があります。brightness設定できるプロパティがあります。実際のバックライトが許容するよりも暗くしたい場合のためwantsSoftwareDimmingに、ハードウェアで行うことができるよりも暗く見えるようにする半透明レイヤーを自動的に配置するプロパティがあります。これは、半透明で思いついた方法と非常によく似ていますUIView。すべてのアルファ ブレンディングでパフォーマンスが低下するため、ソリューションまたはソフトウェア ディミング API を多くのアニメーションで使用しないでください。

UIScreen クラス リファレンスを参照してください。

于 2011-11-22T22:59:32.823 に答える
3

iOS 7 以降:

yourViewController.view.tintAdjustmentMode = UIViewTintAdjustmentModeDimmed;
于 2014-10-10T14:07:06.827 に答える