2016-09-05 4 views
-1

MyアプリケーションがMySqlサーバーからデータを読み取り、それをテーブルビューに表示します。サーバーへの呼び出しの開始時に、アプリケーションは、Light Grayの背景色を持つビュー(「pdView」という名前)でtableViewをカバーします。そのビューは、ちょうどそれがアプリ後画面スウィフトを表示するのに長時間がかかる2.2

pdView.hidden = false 

を使用して見えるようになり、サーバへの呼び出しの直前まで、のtableViewはまた、(IBに設計された)の一部であるが、隠された状態になっているシーンの一部でありますグレー表示の下に、のtableViewに表示されたデータを見ることができる

 dispatch_async(dispatch_get_main_queue(), {() -> Void in 
     tableview.reloadData() 
    }) 

いずれかを使用して、データを取得し、テーブルビューを満たします。 私はその後

pdView.hidden = true 

を使用してビューをバック隠そうとするが、それは消えるために、グレー色のために約44秒でアプリを要します。その間、私のアプリは正常に動作し、テーブルを上下にスクロールすることができます。

dispatch_async()内のビューを非表示にするコードを入れてみましたが、無駄にしました。

この問題を修正して、隠れた状態に戻った直後にpdViewが消えるようにするためには、何が必要ですか?

+0

'reloadData()'の呼び出しの直後にそれを隠すとどうなりますか? –

+0

私もそれを試しました - 助けてくれません – Zvi

+0

誰かがなぜ説明なしで質問をdownvotedしたのか知りたいのですが。 – Zvi

答えて

0

UIを別のスレッドから更新しようとしているようです。 pdView.hidden = trueに何らかの文脈を与える必要があります。あなたは助けself

self.pdView.hidden..ホープ

dispatch_async(dispatch_get_main_queue(), {() -> Void in 
    tableview.reloadData() 
    self.pdView.hidden = true 
}) 

注意を試すことができます。

+0

私もそれを試しました – Zvi

0

あなたのUIコードはメインスレッドからのものである必要があります。これには、ビューのhiddenフラグの状態の変更などが含まれます。

はあなたにも

dispatch_async(dispatch_get_main_queue() 

への呼び出しに包まれたそのコードを持っていますか?

+0

私の記述で述べた通りです – Zvi

+0

あなたの説明は、 'pdView.hidden = false'と' pdView.hidden = true'文を実行するコンテキストに関する情報を提供しません。より多くの文脈と共に、あなたのメソッドの完全なコードを提供するために質問を編集する必要があります。 –

関連する問題