はじめに

Apple TVアプリには、スマホのように直接タッチスクリーンで操作することはなく、フォーカスという概念があります。

フォーカスはリモコンでの操作によって上下左右に遷移ができます。

フォーカスできる範囲

フォーカスはフォーカスエンジンが検索する範囲内のViewで決定されます。

その範囲はフォーカスされているViewを中心にして、上下左右に存在します。

上記でStartボタンがフォーカスされている場合、ボタン1、ボタン2、ボタン3、ボタン4にはフォーカス可能ですが、ボタン5にはフォーカスできません。

フォーカスの制御

開発中、デザインを維持したままボタンの位置とサイズを変更できない場合、Startボタンからボタン5へのフォーカスを実現するには、UIFocusGuideを使用します。

上記のコードでUIFocusGuideを追加すると、ボタン5の検知範囲が以下のようになるため、Startボタンからボタン5へフォーカス遷移が可能になります。

preferredFocusEnvironments

また、動的にフォーカスの制御をしたい場合、preferredFocusEnvironmentsで実現できます。

例えば、ボタン1を押下した後にボタン2へのフォーカス遷移をしたい時、下記のコードで実現できます。

ボタン1のタップイベント内で、次にフォーカスするターゲットをボタン2に設定し、updateFocusIfNeeded()で画面のフォーカスを更新します。

フォーカス更新時に、preferredFocusEnvironmentイベントを呼び、カスタムフォーカスターゲットが指定条件を満たした場合、そのターゲットにフォーカスします。 それ以外の場合、デフォルトでフォーカスすべきViewにフォーカスが移ります。

おわりに

tvOSのフォーカス制御について簡単に紹介しましたが、いかがでしたでしょうか?

興味のある方は、是非お試しください。



ギャップロを運営しているアップフロンティア株式会社では、一緒に働いてくれる仲間を随時、募集しています。 興味がある!一緒に働いてみたい!という方は下記よりご応募お待ちしております。
採用情報をみる