【Swift】画面の明るさを変える方法

本サイトはアフィリエイト広告を利用しています。
画面を見やすくするために・・・
  • 画面の明るさ変更をしたい
  • ある画面で明るさを一定にしたい

必須という程でもないかもしれませんが、画面が切り替わった時に明るさMAXにしたい、ということもあるかもしれません。

画面の明るさを変える方法

brightness | Apple Developer Documentation
The brightness level of the screen.

画面の明るさを変えるには、UIScreen.main.brightnessのプロパティを変更することで可能です。

0.0〜1.0まで変更できます。

現在の画面の明るさを取得

var currentBrightness = UIScreen.main.brightness

というようにすれば、現在の画面の明るさを取得できます。

画面の明るさを最大にする

UIScreen.main.brightness = 1.0

というようにすれば画面の明るさを最大にできます。

画面の明るさ変更を試してみる

それでは試してみましょう。

画面1から画面2に遷移するアプリを用意します。

画面2から画面1に戻ることもできるようにしておきます。

明るさ変更用

画面2のViewController.swiftで、UIScreen.main.brightnessで明るさを変更するようにします。

画面2が表示された時に明るさが最大、画面1に戻った時に元の明るさになると思います。

import UIKit

class SecondViewController: UIViewController {

    var currentBrightness = UIScreen.main.brightness
    
    
    override func viewDidLoad() {
        super.viewDidLoad()
        print("second did load")

        // Do any additional setup after loading the view.
    }
    
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        print("second will appear")   
    }
    
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        print("second did appear")
        UIScreen.main.wantsSoftwareDimming = true
        UIScreen.main.brightness = 1.0
    }
    
    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        print("second will disappear")
        
        UIScreen.main.brightness = self.currentBrightness
    }
    
    override func viewDidDisappear(_ animated: Bool) {
        super.viewDidDisappear(animated)
        print("second did disappear")
    }
   
    @IBAction func onBackButton(_ sender: Any) {
        dismiss(animated: true, completion: nil)
    }
}

どんな場合に使うのか?

画面にQRコードやバーコードを表示して、別の機器に読み取らせたい場合によく使われていますね。

他にありそうなものは、

  • 元々が暗い画像や動画を見やすいように表示する
  • 太陽光の下のように明るい場所で使う前提で表示する
  • 画面を面光源として使う場合

といったところでしょうか。

また、今回の記事では画面遷移をしたときに明るさを変更する方法で試しましたが、明るさを変更するタイミングは色々な方法がありそうです。

コメント

タイトルとURLをコピーしました