画面録画時にレイアウトを変更する

はじめに

画面録画中にアプリのロゴなどのブランディングをするためにロゴなどを表示させたいという要件に対応するために調べてみました。

イベント

現在スクリーンをキャプチャしているかというのはUIScreen.main.isCapturedというフラグで判定できるようです。

capturedDidChangeNotificationのNotificationを受け取ることでイベントを検知できるようです。

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        NotificationCenter.default.addObserver(
            self,
            selector: #selector(recordingCapture),
            name: UIScreen.capturedDidChangeNotification,
            object: nil)
    }

    @objc func recordingCapture() {
        self.view.backgroundColor = UIScreen.main.isCaptured ? .yellow : .black
    }

}