「優先焦点は」概念的動作方法はの「連鎖」があるということですアプリケーションのウィンドウから始まり、ビューコントローラとビューを経て、チェーンがフォーカス可能なビューで終了するまで、オブジェクトを返します。最終的には、アプリの起動時に焦点を合わせるか、フォーカスをリセットする必要があるか(たとえば、現在フォーカスのあるビューがビュー階層から削除された場合、UIKitはフォーカスを合わせるために別のビューを選択する必要があります) 。 preferredFocusedView
メソッドは、チェーンの定義方法です。
たとえば、UIWindow
は、rootViewController
の好ましいフォーカスされたビューを返すためにpreferredFocusedView
を実装します。抽象的で、tはこのような何かをやっている:
- (UIView *)preferredFocusedView {
return [self.rootViewController preferredFocusedView];
}
UIViewController
はそれがview
財産だ返すようにpreferredFocusedView
を実装しています。 UIView
はそれ自身を返します。
ただし、UICollectionView
はpreferredFocusedView
を別様に実装しています。最も簡単な場合は、最初のセルを返します。それで、あなたが望むものの一部がすでにあなたのために行われています。フォーカスがコレクション内の最初のセルに移動していない場合は、「チェーン」内の上位のものが問題です。
あなたのビューコントローラのコレクションビューは、ビューコントローラのview
プロパティではない場合、あなたは、コレクション自身にフォーカスチェーンをガイドする必要があります。そこから
// in your view controller:
- (UIView *)preferredFocusedView {
return myCollectionView;
}
、コレクションビューます特定の細胞にチェーンを導く。あなたがこの方法を使用することができます
今話しています。 Appleがなぜあなたのような人々を雇ってドキュメンテーションを書くことがないのだろうか?代わりに、彼らは執筆を嫌う人を書いています。完璧!ありがとう! – SpaceDog
一部のサービスからデータを取得する場合は、[self setNeedsFocusUpdate]と書くことを忘れないでください。コレクションビューの後にreloadData/reloadSectionステートメント。 – NaXir
コレクションビューでどのセルがフォーカスされているかをプログラムで変更する方法についてのガイダンスはありますか? – vtcajones