objcのトレンドに入っているライブラリを読んで気になるところをメモしていこうと思います。AAWindowhttps://github.com/aaronabentheuer/AAWindow.git機能UIWindowのサブクラスとして作られていて、主に以下の2つの機能があるようですWindow自体にcornerRadiusを設定するコントロールセンターを開いたことを検知できるWindow自体にcornerRadiusを設定するREADMEにも書いてありますが、Instagramが出しているHyperlapseなど、最近画面全体に角丸が設定してあるアプリは確かにちょくちょく見かけます。マルチタスク切り替えの画面では角丸に設定していると、角の背景色が目立ってしまって少し残念な見た目になります。これを防ぐために、AAWindowではバックグラウンドに移行する際に自動でcornerRadiusを0に設定、フォアグラウンドに戻ってきたら再度cornerRadiusを設定という動作を、いい感じのアニメーション付きやってくれるようです。実装も細かい制御をのぞけばシンプルでUIApplicationWillResignActiveNotification,UIApplicationDidBecomeActiveNotificationを拾って再設定しているだけです。"cornerRadius")}コントロールセンターが開いた事を検知できるコントロールセンターを開いた場合はバックグラウンドに移行する時と同じくUIApplicationWillResignActiveNotificationが飛んでくるので、これだけだとコントロールセンターを開いたのかバックグラウンドに移行したのかわからないという問題がありました。(あまりここで実装を分けることもないのかもしれないですが...)AAWindowではこれを区別できるようになっていて、コントロールセンター用のNotificationが用意されています。nil)必要に応じて以下の名前をobserveしておくといいかと思います。applicationWillResignActiveWithControlCenterapplicationWillResignActiveWithoutControlCenter実際の実装はかなりゴリゴリで、まずタッチ座標を取得して画面の下部10%にあるかどうかを判定して、そうであればフラグをたてておきます。...その後一定の秒数以内に実際にUIApplicationWillResignActiveNotificationが飛んでくればコントロールセンターが表示されたと見なす、という実装です。この一定の秒数を決める部分の実装が少し参考になったのですが、ステータスバーが隠れている状態(=フルスクリーン)だと、コントロールセンターは1度目の操作で少しだけ出てきて、2回目の操作で完全に表示されるという挙動をします。0.5}}()言われてみれば、ですがステータスバーの状態で動作が決まってたんですね。上記のようにステータスバーがでていれば2.75秒、そうでなければ0.5秒間の間にUIApplicationWillResignActiveNotificationが飛んでこなければフラグをfalseに戻す、というのをタイマーを使って実装しています。ちなみに上記角丸の設定もコントロールセンターかどうかで動作を変えています。本当にバックグラウンドに移行した場合のみ角丸をはずすようになっているようです。角丸設定ライブラリを作ろうとして、必要なのでコントロールセンター判定も作った、という流れですかねUIWindow上のすべてのタッチイベントを拾っているので、それなりに重くなりそうな気はします。