スクリーンの輝度を取得したり、輝度を変えたりできます。ユーザーが「設定」で変更できるところでもあります。
Swift 5.1
Xcode 11.3.1
Xcode 11.3.1
ScreenBrightness
スクリーンを白くしてライト代わりにつかうというのは、それなりに実用性がありますが、似たようなアプリが多いのでこれをメインにするアプリはRejectされる可能性がありますので注意。
カメラで撮影の時に暗所ではflash LEDが点灯しますが、このflashのみを点灯させてたり、明るさを変えたりしてみたいと思います。
...
storyboardにUILabelとUISliderを置きます。
UISliderはValueChangedと@IBActionであるsliderChangeとを紐付けします。
ViewController.swift
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
import UIKit class ViewController: UIViewController { @IBOutlet var label: UILabel! @IBOutlet var slider: UISlider! override func viewDidLoad() { super.viewDidLoad() let screen = UIScreen.main // set the current value on the slider self.slider.value = Float(Double(screen.brightness)) self.updateLabel() NotificationCenter.default.addObserver(self, selector: #selector(brightnessChanged(_:)), name: UIScreenBrightnessDidChange, object: nil) } func updateLabel() { let screen = UIScreen.main self.label.text = String(describing: screen.brightness) } @objc func brightnessChanged(_ notification: Notification) { if let screen = notification.object { self.label.text = String(describing: (screen as AnyObject).brightness) } } @IBAction func sliderChange(_ sl: UISlider) { UIScreen.main.brightness = CGFloat(sl.value) self.updateLabel() } override func viewDidDisappear(_ animated: Bool) { super.viewDidDisappear(animated) // 設定終了 NotificationCenter.default.removeObserver(self, name: UIScreenBrightnessDidChange, object: nil) } } |
UISliderを使ってスクリーンの輝度が変わりますが、テキストの数値はSliderの設定値ではなく変更された輝度を計測した値を表示させています。
関連ページ:
- Battery 電池残量を調べる
- フラッシュLEDを点灯させる
- スクリーンの輝度取得と変更
References:
UIScreen – UIKit | Apple Developer Documentation
UIScreenBrightnessDidChange – NSNotification … – Apple Developer