2016-11-28 22 views
0

私はUICollectionViewを使用しています。ユーザーがセルをクリックすると、特定のプロセスが実行されます。このプロセスには数秒かかることがあるので、このプロセスが開始されるとすぐに、処理メッセージを表示してユーザに表示したいと考えています。UICollectionViewのメインスレッドを呼び出すdidSelectItemAt

次のように一般的な考え方をされています

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { 

    DispatchQueue.main.async { 
     self.someView.isHidden = false 
     print("showing processing message is about to start") 
    } 

    // some process runs here which may take a few seconds to finish 

    DispatchQueue.main.async { 
     self.someView.isHidden = true 
     print("hidding processing message") 
    } 

} 

を私にいくつかの未知の理由で、メインスレッドにこれらの呼び出しは、このようにその処理メッセージは、それがほぼ同時に消え、didSelectItemAtが完全に終了した直後に実行されています登場しました。

私がここで紛失していることを誰かが知っていますか?

感謝:)

答えて

0

、あなたの質問に説明何がコードに基づいて、通常のようだあなたが原因は、メインスレッド上で呼び出されているという事実に入っている切り取ら。

あなたはが完了プロセスに隠されてしたい場合、あなたがが隠されていない間に実行しようとするプロセスの完了の閉鎖にを隠すために良いアイデアだろう。

関連する問題