Swift

【Swift】【コピペ】画面の明るさをスライダーを使って変更する一番簡単な方法

 

PayPayのアプリを使用している人は多いかと思います。

いざお支払いしようとする時に

「うわっ!」「まぶしっ!」

となった方は私含め数多くいると思います。

これはバーコードを読み取りやすくするために

意図的に決済画面を開いたら画面の明るさを変更しています。

流石に眩しすぎる気がするのは私だけでしょうか?

 

ってわけでどうやって明るさを調整するのかというのを説明、

というよりはお見せしたいと思います。

UIScreenとは

UIScreenというオブジェクトを使用します。

UIScreenはハードウェアの画面に関連づけられたプロパティーの使えるオブジェクトです。

画面の解像度、輝度、画面の倍率を変更できるクラスだと覚えておきましょう。

UIScreen.main.brightness =  0.5

 

この0.5の数値の箇所を変更することで明るさを変更することができます。

明るさの段階は0.1 ~ 1.0の間となるため10や100を入れても1.0と

明るさ自体は変わりません

 

今回はスライダーなのでslider.valueの数値間を設定しその数値を代入すれば

明るさは変わっていきます。

こちらは全てのコードです。

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        let slider = UISlider(frame: CGRect(x: 100, y: 50, width: 200, height: 50))
        slider.maximumValue = 100 //最大値
        slider.value = 50
        slider.minimumValue = 0 //最小値
        slider.isContinuous = true //スライド中のイベントのある無し
        //ターゲットの追加
        slider.addTarget(self, action: #selector(onChange), for: .valueChanged)
        view.addSubview(slider)
    }
    
    @objc func onChange(sender: UISlider) {
        UIScreen.main.brightness =  CGFloat(sender.value) * 0.01
    }
}

 

私はmaximumValue=100に設定していますが,

こちらを1.0に変更すれば*0.01にする必要はございません。

UIScreen.main.brightness =  CGFloat(sender.value) * 0.01

 

一番簡単かと思いますので、コピペして使ってください!

 

 

 

ABOUT ME
goto
海外事業担当兼iOSエンジニア。 元々海外に行くことが好きで、海外で知り合った方に、CEO馬谷の話を聞き2019年2月に株式会社Playgroundに入社。 今も海外での生活、海外での仕事に憧れている。 今個人的にプライベートで行きたい国はイスラエルとポーランド。

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA