我正在使用UICollectionView
,并且当用户单击单元格时,将运行特定的过程。由于此过程可能需要几秒钟,因此,我想在此过程即将开始时向用户显示一些处理消息。
总体思路如下:
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
完全完成之后执行的,因此处理消息几乎在它出现的同时消失。有人知道我在这里想念的吗?
谢谢 :)
最佳答案
根据您输入的代码,由于在主线程上调用了someView
,因此您在问题中所描述的内容似乎是正常的。
如果希望在进程完成时隐藏someView
,则最好在不隐藏someView
的情况下将someView
隐藏在要运行的进程的完成关闭中。