2016-06-29 2 views
0

私はWatchOSアプリケーション用の単純な複雑なテンプレートを作成しようとしていますが、ComplicationControllerクラスのメソッドgetPlaceholderTemplateForComplication()がいつ呼ばれるのか理解しようとしていません。getPlaceholderTemplateForComplication()メソッドはいつ呼び出されますか?

Appleのドキュメントは

を言うアプリが最初に起動すると、ClockKitは

、このメソッドを呼び出しますが、私は、シミュレータを実行した場合、それは最も頻繁に発生しません。

「Apple WatchでApp Show」スイッチをオフにしてからオンに戻すことは役に立ちません。

getPlaceholderTemplateForComplication()メソッドはいつ呼び出されますか?

+0

a)ウォッチフェイスのカスタマイズ中にプレースホルダが表示されないこと、b)getPlaceholderTemplateForComplicationコードを追加してください。 –

+0

プレースホルダメソッドが呼び出された後、プレースホルダテンプレートがアプリに表示されます。これは正常な動作であり、私はそれに何の問題もありません。問題は、メソッドが常に呼び出されるとは限らず、実行する方法とタイミングを知る必要があるということです。 – Julsteri

+0

システムはメソッド* once *を呼び出し、結果をキャッシュします。ウォッチフェイスをカスタマイズするたびに、メソッドを呼び出すことはありません。どのように、なぜシステムが何かをするのかを尋ねる代わりに、あなたが経験している症状を説明する必要があります。プレースホルダはカスタマイズ時に表示されますか? ** **コードを表示してください**。この問題は、システムがあなたのメソッドを呼び出すかどうかではなく、コード内で可能性が高くなります。なぜなら、システムは呼び出すタイミングを知るために最適化されているからです。 –

答えて

0

ウォッチフェイスをカスタマイズして表示される複雑さを選択するときに、プレースホルダテンプレートが呼び出されます。システムはgetPlaceholderTemplateForComplication()を一度と呼び出し、結果をキャッシュします。あなたが合併症をカスタマイズするたびに、メソッドを呼び出すことはありません。

複雑な選択肢をスクロールすると、そこに表示される静的な詳細には、プレースホルダテンプレートに返される詳細があります。

ウォッチフェイスに表示される複雑化がアクティブになると、プレースホルダテンプレートが呼び出されません。代わりに、タイムラインのエントリは、これらのcomplication dataSource方法から来る:

  • getCurrentTimelineEntryForComplication、必要に応じてタイムトラベルがサポートされている場合
  • getTimelineEntriesForComplication
  • から。

時計アプリのインストールまたは削除は、プレースホルダテンプレートとは関係ありません。 watchOS 3については

watchOS 3は、ユーザーが見て時計面と合併症をカスタマイズすることができ、顔のギャラリーをサポートしています。ギャラリーに表示される静的な複雑なデータは、プレースホルダーテンプレートからも得られます。

+0

iPhone + Apple Watchシミュレータでwatchkit appスキームを実行しています。私もあなたが言及したすべての方法でブレークポイントを追加しました。説明したように、実行は 'getPlaceholderTemplateForComplication'メソッドのブレークポイントに達しません。私は時計の顔をカスタマイズし、合併症をスクロールしようとしました。私の合併症は空に見えます。私はwatcheのキャッシュをどうにかリセットする必要がありますか?私は、シミュレータのコンテンツと設定をリセットしようとしました。 – Julsteri

+0

ウォッチ・フェイスをカスタマイズしているときに、ウォッチの動作をデバッグしていないので、ブレークポイントには到達しません。システムはあなたの複雑化コントローラのインスタンスをインスタンス化しましたが、それに接続したり対話式にデバッグすることはできません。しかし、デバッグは実際問題ではありません。おそらく、あなたはあなたの質問を編集し、あなたの合併症が "空"であることを示すことを説明する必要があります。ウォッチフェイスのカスタマイズ中、またはウォッチフェイスでアクティブになっていますか? –

+0

シミュレータが過去のブレークポイントを実行できることを意味しますか?私の経験では、ブレークポイントに達することは時々ありますが、必ずしもそうではありません。また、空の場合は、カスタマイズモードで合併症にスクロールすると、合併症の名前がコンテナの隣に表示されますが、コンテナは空です。システムが複雑なテンプレートを決してキャッシュしなかったことを意味します。 – Julsteri

関連する問題