2012-01-20 22 views
16

iPhone SDKを使用して画面の輝度をプログラム的に変更するにはどうすればよいですか?iPhone:プログラムの画面の明るさを変更するにはどうすればよいですか?

お知らせください。

ありがとうございます!

+1

これは公式SDKの一部であり、ソースを確認することをお勧めします。 http://developer.apple.com/library/IOs/#documentation/UIKit/Reference/UIScreen_Class/Reference/UIScreen.html –

答えて

43
[[UIScreen mainScreen] setBrightness: yourvalue]; 

iOS 5.0以降が必要です。 yourvalueは、0.0〜1.0の間の浮動小数点数です。

+0

私は助けてくれてうれしいです。あなたが探していたものなら、あなたは答えを受け入れることができます:) –

+0

これはあなたがApp Storeからキックオフされませんか? –

+0

これは完全に合法的なAPIコールです。私はそれに何か問題があるべき理由を見ることができません。 –

1

画面の明るさを変更したい場合は、IOS 5以降のOSでのみ変更できます。

アプリケーションに以下のコードを入力してください。

[[UIScreen mainScreen] SetBrightness:1.0]; 

浮動小数点型(float)型のコードです。

+11

回答をコピーするときにスペルを確認する必要があります。 – Eiko

8

UPDATE:ここでは、迅速な答えは、この

UIScreen.mainScreen().brightness = YourBrightnessValue 

YourBrightnessValue実行することですスウィフト3

UIScreen.main.brightness = YourBrightnessValue 

については、私は変更して、いくつかの問題を抱えていた0.0

+0

現在の輝度を要求する:let brillo:CGFloat = UIScreen.main.brightness –

0

1.0間のフロートですviewDidLoad/viewWillDisAppearの画面の明るさは私がシングルを作成したすべてのアクションを処理するためのクラス。これは私のやり方です:

import Foundation 
import UIKit 

final class ScreenBrightnessHelper { 

    private var timer: Timer? 
    private var brightness: CGFloat? 
    private var isBrighteningScreen = false 
    private var isDarkeningScreen = false 

    private init() { } 

    static let shared = ScreenBrightnessHelper() 

    func brightenDisplay() { 
     resetTimer() 
     isBrighteningScreen = true 
     if #available(iOS 10.0, *), timer == nil { 
      brightness = UIScreen.main.brightness 
      timer = Timer.scheduledTimer(withTimeInterval: 0.01, repeats: true) { (timer) in 
       UIScreen.main.brightness = UIScreen.main.brightness + 0.01 
       if UIScreen.main.brightness > 0.99 || !self.isBrighteningScreen { 
        self.resetTimer() 
       } 
      } 
     } 
     timer?.fire() 
    } 

    func darkenDisplay() { 
     resetTimer() 
     isDarkeningScreen = true 
     guard let brightness = brightness else { 
      return 
     } 
     if #available(iOS 10.0, *), timer == nil { 
      timer = Timer.scheduledTimer(withTimeInterval: 0.01, repeats: true) { (timer) in 
       UIScreen.main.brightness = UIScreen.main.brightness - 0.01 

       if UIScreen.main.brightness < brightness || !self.isDarkeningScreen { 
        self.resetTimer() 
        self.brightness = nil 
       } 
      } 
      timer?.fire() 
     } 
    } 

    private func resetTimer() { 
     timer?.invalidate() 
     timer = nil 
     isBrighteningScreen = false 
     isDarkeningScreen = false 
    } 
} 
関連する問題