Objective-C
iOS
Swift
ios11
Xcode9

iOS11で追加されるScreen Recordingについて

はじめに

iOSDC2017に参加して自分もなにかアウトプットしたい!!!!!!!
と思って温めていたものを書こうと思います。


Screen Recording

iOS11でiPhone単体での画面録画ができるようになりましたね。
NDA違反になるため画面は出せないですが、
設定 > コントールセンター
からコントロールセンターにScreen Recordingのボタンを出せます。

なんでもかんでも録画されると困る!!!
という方向けの記事です。

結論から書きますとアプリ側では録画を止めることはできません😇
録画を始めさせないというのも無理です😇

ではどうするか。
ちゃんとApple様は用意してくれています。

iOS11から追加されたプロパティ
Objective-C
UIScreen.mainScreen.isCaptured
Swift
UIScreen.main.isCaptured

このプロパティは現在録画中か否かを返します。
録画中ならtrue
録画していない状態ならfalse

これで現在の状態を取れるようになったので、
例えば録画されたくない画面などの場合に何らかの対応を入れることができますね。
対応内容はプロダクトによって分かれると思うのでここでは割愛します。

他にもNSNotification.NameにUIScreenCapturedDidChange
追加されておりこれはisCapturedの値が変わったタイミングで通知が送られてきます。
注意する点はあくまでもisCapturedの値が変わったら通知がくるだけなので、
通知が来たら任意のメソッドに飛ばしてisCapturedの値を見て処理をする必要があります。

もし他にも対応方法を知っていたらコメント等で教えていただけると幸いです。


あとがき

iOSDC2018楽しみです!!!!!!