15

UICollectionViewCelltvOS アプリにカスタムがあります。その中に aUIImageViewといくつかUILabelの s があります。UIFocusEnvironment問題なくプロトコルを実装することでセルをフォーカスさせることができますが、カスタム セルにフォーカスを当てた外観を与える方法がわかりません。(タッチパッド上での上昇とユーザーの動きへの応答)。

UIImageViewのプロパティを認識してadjustsImageWhenAncestorFocusedいますが、それはセル全体ではなく、セル内の画像のみを持ち上げます。

tvOS に (一見) 標準のフォーカスの外観/動作をカスタム ビューに適用させる方法はありますか、それともすべて手動で行う必要がありますか?

前もって感謝します。

4

1 に答える 1

17

tvOS 12.0+ のアップデート: Apple がTVUIKitで提供した新しいクラスをチェックしてください! このフォーカス動作を持つカスタム ビューを作成できるようになりました。

————</p>

Apple 開発者フォーラムで同じ質問をしました。アップルのスタッフは次のように答えました。

カスタム ビューの場合、フォーカスの外観を自分で実装する必要があります。focus update メソッドでは、変換の適用やUIMotionAffect API の使用などを実行できます。

- (void)didUpdateFocusInContext:(UIFocusUpdateContext *)context withAnimationCoordinator:(UIFocusAnimationCoordinator *)coordinator {
    if (context.nextFocusedView == self) {
       // handle focus appearance changes
    }
    else {
       // handle unfocused appearance changes
    }
}

UIView同じ動作を任意のカスタム ビューに適用できる拡張機能を作成すると、かなり役立つと思います。

ユーザーにフォーカスを表示するためのより興味深い方法を実装してほしいと考えているのではないでしょうか? これは、これを簡単に有効にする正当な理由になりますUIImageView(この動作は、シミュレートされた光を の上に追加することは言うまでもありませんUIImageView。これは美しいですが、おそらく画像に対してのみ意味があります)。

于 2015-09-21T18:19:44.717 に答える