問題タブ [focus-engine]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - ビューコントローラーにpreferredFocusViewを強制的に呼び出すにはどうすればよいですか?
したがって、次のメソッドを持つView Controllerがあります。
したがって、基本的に、値を設定することで、必要なビューにフォーカスを強制的に更新できviewToFocus
ます。これは、ほとんどの場合にうまく機能します。ただし、サブビューを削除すると、これは正しく機能しないようで、preferredFocusedView
呼び出されません。
私のサブビューに関して言えば、これは画面を覆うオーバーレイであり (モーダルを使用しなかった理由は聞かないでください。それには理由がありました)、デリゲートとして親ビュー コントローラーを持っています。親View Controllerには次のメソッドがあります。
何らかの理由で、closedOverlay が呼び出され、focusedViewBeforeOverlay
有効な非 nil ビューがある場合、オーバーレイがスーパービューから削除された後にフォーカスされる次のビューになることはありません。私が言ったようpreferredFocusedView
に、フォーカスは呼び出されることはなく、代わりに、フォーカス エンジンが次のフォーカスであるべきと判断したものにフォーカスします。
なぜそうなるのか誰でも知っていますか?サブビューを削除すると、フォーカスの更新をトリガーできなくなりますか?
したがって、順序、または少なくとも予想される順序は次のようになります。
- 何か
OverlayView
がインスタンス化をトリガーします beforeOpeningOverlay()
が呼び出され、現在フォーカスされているビューが に設定されfocusedViewBeforeOverlay
ます。オーバーレイが開かれ、フォーカスがキャプチャされます- 何かがオーバーレイビューを閉じるようにトリガーし、呼び出します
closedOverlay()
viewToFocus = focusedViewBeforeOverlay
行が呼び出されます- 親ViewControllerに対してフォーカス更新を呼び出す必要があります。
preferredFocusedView
preferredFocusedView
viewToFocus
which が設定されたものを返しfocusedViewBeforeOverlay
、オーバーレイが開く前にフォーカスされていたビューにフォーカスを戻す必要があります。
問題は、ステップ 5 以降が呼び出されていないようです
swift - データの更新中に UITableView の最初の行をフォーカスしたままにするにはどうすればよいですか?
UITableView
tvOS のデータのタイムラインを示す があります。を介して動的に更新されNSFetchedResultsController
ます。
テーブルが更新されると、新しいセルが上部に追加されます。ただし、以前に選択したセルはフォーカスされたままですが、必要な動作は、データの更新後にフォーカスが「最新」(つまり、一番上の) セルに移動することです。
どうすればこれを達成できますか?
uitableview - デフォルトの tvOS フォーカス アニメーションを無効にするにはどうすればよいですか?
UITableView
、UITextField
、およびいくつかのカスタムを組み合わせた UI を作成する必要がありUIView
、カスタム フォーカス アニメーションも提供する必要があります。
UITableView
/UITableViewCell
を取得しUITextField
て、デフォルトのフォーカス アニメーションをレンダリングしないようにするにはどうすればよいですか?
私は試した:
独自のアニメーションを追加できますが、ビューから「デフォルト」のアニメーションを削除できません。
swift - ボタンは手の届かないところにあるため、フォーカスできません - tvOS Swift
tvOS ムービー ブラウザを作成しています。このビューは映画の説明を保持し、4 つのものを表示します: 映画のカバー画像、映画の説明テキスト、時計ボタン、および映画のキャストのコレクション ビュー (青いボックス)。preferredFocusView は、watchButton に設定されます。ただし、その下のコレクション ビューにフォーカスを切り替えると、キャストが短すぎると時計ボタンに再びフォーカスできなくなります。
キャストがボタンのすぐ下まで伸びているため、時計ボタンはここでフォーカス可能です
最終的には、ウォッチ ボタンが最初のキャスト メンバーの真上にくるように UI を再配置することで修正できることはわかっていますが、私が目指していた元の外観を実現する実際の方法があるかどうかを知りたい.
ありがとう!