2015-12-30 12 views
23

が、私は二つのことが含まれている今日のウィジェットを持ってフリーズ私はラベルテキストを「読み込み中」に設定します。下の画像を参照してください。今日ウィジェットのtableViewは

それから私は、場所を取得し、これが行われたとき、私はどのようなデータが見つからない場合、私はちょうど、「データが見つかりませんでしたし、ラベルテキストを更新し、別のメソッドを呼び出すと

  1. は、そうでなければ私は非表示にするラベルを設定してのtableViewが見えるようにと、私はこれが正常に行われているとき、私は、HAデータ

の更新を開始します

:このように見えるのtableView VEの。今、私の問題へ


私は私の今日のウィジェットを開き、viewWillAppearを打つとき、私はいつも私のラベルを設定するために管理ドントと私が得る唯一の結果は、この

です。

だから何が起こるかは、私が唯一のtableViewで私の前の結果のビットを示すことができるということです。

これは、時折起こると、のtableViewがフリーズとのtableViewを隠し、代わりにラベルを表示するには、最初のビューを更新する - 私ができないようです。このように画面がフリーズしても、すべてが正常に動作しているので、tableViewとビューを更新することができます。

時々の代わりに、私のラベルを示す:私は画面はこのようにフリーズするウィジェットを開いたときに

唯一の問題

です。その理由は、それがあるとして、サイズがit's私は preferredContentSize = CGSizeMake(0, 30)を設定しているためです。それ以外の場合、前のtableView全体が表示されます。

私はviewWillAppearを打つときは、常にビューを更新するには、この問題を解決する方法の任意のアイデア?この問題に関するいくつかの他の入力があるかどうかを確認するために、別の恵みを開始

更新

+0

いくつかのコードを追加できますか?たとえば、ネットワーク要求を行い、結果を解析しますか?はいの場合は、 'reload()'テーブルビューを使用しますか?ラベルを非表示にします。おそらく私があなたを助けることができるいくつかの実装を追加する場合 – DeVladinci

+0

コードを表示してください、そうでなければ手助けすることはできません! – jbg

+0

'NCWidgetProviding'プロトコルに準拠し、' widgetMarginInsetsForProposedMarginInsets: 'を実装していますか? – Ftoledo

答えて

10

システムが行うことは、スナップショットを取得することです。私もこの問題で少し苦労しており、thisの投稿をチェックしましたが、私の問題は解決しませんでした。ビュー

  • NCUpdateResultNoDataを再描画するためにあなたを必要な新しいコンテンツ - - ウィジェットが
  • NCUpdateResultFailedの更新を必要としない - エラーが発生した時に

    widgetPerformUpdateWithCompletionHandlerのための3つのオプション

    1. NCUpdateResultNewDataがあります更新プロセス

    これらのうちのどれが常に同じ結果。 システムがスナップショットを取得します。

    あなたのウィジェットが最新に見やすくするために、システムは時折ウィジェットのビューの スナップショットをキャプチャします。ウィジェットが表示されると、 が最新のスナップショットになります。 をビューのライブバージョンに置き換えます。

    スナップショットを作成する前にウィジェットの状態を更新するには、 がNCWidgetProvidingプロトコルに準拠していることを確認してください。あなたのウィジェットが widgetPerformUpdateWithCompletionHandlerを受信した場合:最新の内容でご ウィジェットのビューを更新、呼び出し、

    更新の

    Reference結果を記述するために、次のいずれかの定数を使用して、完了 ハンドラを呼び出します。

    「重い」データを読み込もうとしていると思われますが、これはそのために発生する可能性があります。これは私の答えですが、他の人が別の回答をしているか、あなたが私の投稿に同意しているかどうかを確認するための恩恵を受けました。

  • 関連する問題