UIFocusEnvironment


継承:なし

従属:NSObject(Protocol)

フレームワーク: iOS 8.0 以降の UIKit。関連情報...


概観


UIFocusEnvironment プロトコルは、ビュー階層の分岐のためのフォーカス動作を定義します。このプロトコルの目的は、アプリケーション全体の動作を指定し、フォーカスする反応のための共通のインタフェースを提供します。このプロトコルに準拠する UIKit のクラスは、UIViewUIViewControllerUIWindow、およびUIPresentationController が含まれており、つまり、スクリーン上のビューの制御に直接的または間接的のいずれかであるクラスです。カスタムオブジェクトが UIFocusEnvironment プロトコルに準拠することは有用ではありません。


タスク


フォーカスの更新を要求


フォーカスの更新を要求する時:


- setNeedsFocusUpdate 必須


この環境でフォーカスを更新するためのフォーカスエンジンに要求を送信します。


宣言

<< SWIFT >>

func setNeedsFocusUpdate()

<< OBJECTIVE-C >>
- (void)setNeedsFocusUpdate


議論

この環境が、現在フォーカスされているビューを含んでいない場合、このメソッドを呼び出しても効果はありません。その他の場合、フォーカスの更新はフォーカスエンジンによって受け入れられた場合、フォーカスは実行ループサイクルに好適なフォーカスされたビューにリセットされます。この環境の親もフォーカスを要求している場合、親の要求が優先されます。


利用可能

iOS 9.1 以降で利用可能。





- updateFocusIfNeeded 必須


フォーカスの更新をすぐにするよう、強制的にフォーカスエンジンに指示します。


宣言

<< SWIFT >>

func updateFocusIfNeeded()

<< OBJECTIVE-C >>
- (void)updateFocusIfNeeded


議論

任意のフォーカス環境が、現在更新を保留して(setNeedsFocusUpdate を呼び出した後) いる場合、このメソッドを呼び出すとすぐにフォーカスを更新するようにフォーカスエンジンに強制します。setNeedsFocusUpdate とは異なり、この環境が現在フォーカスを含んでいるかは問題でなく、この環境が、更新を保留中のものであるかも問題ではありません。


利用可能

iOS 9.1 以降で利用可能。





フォーカスの動きを検証


- shouldUpdateFocusInContext: 必須


フォーカスエンジンが、文脈によって説明されたフォーカス更新が発生することを可能にするかどうかを示すブール値を返します。


宣言

<< SWIFT >>

func shouldUpdateFocusInContext(_ context: UIFocusUpdateContext) -> Bool

<< OBJECTIVE-C >>
- (BOOL)shouldUpdateFocusInContext:(UIFocusUpdateContext *)context


パラメーター

contextUIFocusUpdateContext クラスのインスタンスで、フォーカスに関連した更新のメタデータを含みます。

戻り値

フォーカスの更新を可能にするには YES。それ以外の場合は、NO


議論

フォーカスの更新が起ころうとしている時は、フォーカス・エンジンは昇順で、以前にフォーカスしたビュー、次にフォーカスしたビューのいずれか、あるいはその両方を含んでいるすべてのフォーカス環境でこのメソッドを呼び出します。全ての環境が NO を返した場合でも、更新はキャンセルされます。スクリーン上の特定の領域から、またはそれへ移動するフォーカスを防止するために、このメソッドをオーバーライドして下さい。


利用可能

iOS 9.1 以降で利用可能。





フォーカスの更新への反応


- didUpdateFocusInContext:withAnimationCoordinator: 必須


システムが新しいビューへのフォーカスを更新した直後に呼び出されます。


宣言

<< SWIFT >>

func didUpdateFocusInContext(_ context: UIFocusUpdateContext,
    withAnimationCoordinator coordinator: UIFocusAnimationCoordinator)

<< OBJECTIVE-C >>
- (void)didUpdateFocusInContext:(UIFocusUpdateContext *)context
       withAnimationCoordinator:(UIFocusAnimationCoordinator *)coordinator


パラメーター

contextUIFocusUpdateContext のインスタンスで、フォーカスに関連した更新のメタデータを含んでいます。
coordinatorフォーカスに関連したアニメーションを調整するために使用される UIFocusAnimationCoordinator のインスタンス。

議論

フォーカスが新しいビューに更新された後、フォーカス・エンジンは、昇順で、以前にフォーカスしたビュー、次にフォーカスしたビューのいずれか、あるいはその両方を含んでいるすべてのフォーカス環境でこのメソッドを呼び出します。フォーカスの変化に応じてアプリの状態を更新するには、このメソッドをオーバーライドする必要があります。更新に関連した視覚的外観の変化をアニメーション化するために設けられたアニメーションコーディネーターを使用して下さい。アニメーションコーディネーターの詳細については、UIFocusAnimationCoordinator クラスリファレンス を参照してください。


利用可能

iOS 9.1 以降で利用可能。





ユーザーが生成したフォーカスの移動を制御


preferredFocusedView 必須プロパティ


この環境がフォーカスされている場合はフォーカスされていなければならないビューを指定します。(読み取り専用)


宣言

<< SWIFT >>

weak var preferredFocusedView: UIView? { get }

<< OBJECTIVE-C >>
@property(nonatomic, weak, readonly) UIView *preferredFocusedView


議論

UIViewUIFocusEnvironment に適合しているので、このプロパティから返されたすべてのビューにも、好ましいフォーカスのビューがあります。これは、好適なフォーカスチェーン と呼ばれるビューのリンクリストを作成します。新しいビューにフォーカスを更新すると、フォーカス・エンジンは、その新しいビューの優先フォーカスチェーンで最も深い、フォーカス可能なビューにフォーカスを実際に更新します。同様に、アプリケーションの起動時のような初期フォーカスを設定する場合には、初期にフォーカスされたビューは、ルート・ウィンドウから好適フォーカスチェーンに従うことによって見付けられます。


デフォルトでは、UIView は、自分自身を返し、UIViewController は、そのルートビューを返します。フォーカス可能なビューで self を返すと、ビューはフォーカスされるべきであることを示します。フォーカス不可能なビューで self を返すと、フォーカス・エンジンは、デフォルトの好適なフォーカスされたビューを、最も近いフォーカス可能なサブビューを見つけることによって、選択させます。nil を返すと、好適なフォーカスビューが存在しないことを示します。


利用可能

iOS 9.1 以降で利用可能。





次の章
目次
Xcode 10 の新機能

  • UIFocusEnvironment
  • 概観
  • タスク
  • フォーカスの更新を要求
  • setNeedsFocusUpdate 必須
    updateFocusIfNeeded 必須
  • フォーカスの動きを検証
  • shouldUpdateFocusInContext: 必須
  • フォーカスの更新への反応
  • didUpdateFocusInContext:with
    AnimationCoordinator: 必須

  • ユーザーが生成したフォーカスの移動を制御
  • preferredFocusedView 必須プロパティ
    文書改定履歴












    トップへ(UIFocusEnvironment)












    トップへ(UIFocusEnvironment)












    トップへ(UIFocusEnvironment)












    トップへ(UIFocusEnvironment)












    トップへ(UIFocusEnvironment)












    トップへ(UIFocusEnvironment)












    トップへ(UIFocusEnvironment)












    トップへ(UIFocusEnvironment)












    トップへ(UIFocusEnvironment)












    トップへ(UIFocusEnvironment)












    トップへ(UIFocusEnvironment)












    トップへ(UIFocusEnvironment)












    トップへ(UIFocusEnvironment)












    トップへ(UIFocusEnvironment)












    トップへ(UIFocusEnvironment)