2

Apple の標準テンプレートに依存せずに、TVML を使用して動的なテンプレート/ページを作成することは可能ですか?

2 つの画像が隣り合っており、これらの画像の上に、いくつかのパラメーターに基づいて配置したいテキストフィールドがいくつかあるテンプレートを作成したいとします。

テンプレート/ビュー i UIKit を作成し、代わりに JS から入力することはできますか?

これについてどうすればいいですか?

4

1 に答える 1

6

「divTemplate」の組み合わせについて話していると思います。これは、事前定義された構造や配置なしで必要なレイアウトを使用できるようにするために正確に存在し、ネイティブコードを使用して独自のカスタム TVML 要素を定義します。

Apple のドキュメントから、「含まれる要素の組み込みレイアウトはありません。TVML スタイルにリストされているスタイル プロパティを使用して、div テンプレート内に配置された要素をパーソナライズします。」これは、完全に自由形式の手動要素レイアウト用です。

もう 1 つの方法として、UIKit ビューを TVML に追加する方法は、カスタム要素を定義することです。これにより、TVML システムは、カスタム ビューが TVML の「ページ」内のどこに表示されるかを認識します。その道をたどると、TVML と TVJS だけでなく、TVMLKit についても読みたくなるでしょう。TVInterfaceCreatingプロトコルに準拠するクラスを作成し、潜在的に のサブクラスを作成しTVViewElement(既存のクラスの 1 つがニーズに十分でない場合)、要素をに登録し、クラスを[TVElementFactory registerViewElementClass: [MyTVViewElement class] forElementName:@"mycustomelement" ]に登録します。TVInterfaceCreating[[TVInterfaceFactory sharedInterfaceFactory] setExtendedInterfaceCreator: myInterfaceCreator]

したがって、私の見方では、divTemplate と慎重に作成された大量のスタイル情報を使用して、カスタム コードや UIView オブジェクトをまったく使用せずにそれを行うことができます。について話す。それ自体がカスタム要素である新しい「テンプレート」を作成できるかどうかはわかりませんが、それはまだ試していません。

ネイティブ コード パスをたどることに決め、TVViewElement 関連の API が、JavaScript とカスタム ビューの間で必要な調整を行うのに十分ではないことがわかった場合は、JavaScriptCore API についても読む必要があるかもしれません。これらを使用すると、JSContext の API を介して、JavaScript を介して任意のネイティブ機能を公開できます。TVML アプリでは、これらすべてにフックするのに適した場所は、プロトコル- appController:(TVAppController *) evaluateAppJavaScriptInContext:(JSContext *)からメソッドを実装することです。TVApplicationControllerDelegate

于 2016-01-26T16:06:09.697 に答える