我正在嘗試實作 collectionView 單元格的以下行為:通過點擊單元格,應首先更改單元格的外觀!之后,一個耗時的程序應該開始:
@objc private func addItemsToBasket(_ button: UIButton) {
button.setTitleColor(.clear, for: .normal)
Basket.addItems(keys: planner.currentDayKeys())
}
但不幸的是,單元格只有在耗時的塊完成后才會改變外觀。如果我評論“Basket.addItems(keys: planner.currentDayKeys())”,單元格會改變它的外觀提示。
我已經在 GCD 中嘗試了不同的選項,但沒有任何幫助。但實際上,如果我不定義 Queue 代碼應該逐行運行。對?
這應該是一個非常普遍的案例。提前感謝您的任何想法。
uj5u.com熱心網友回復:
就像評論中提到的那樣,您不應該在主佇列上執行耗時的任務。在這種情況下,GCD 肯定會幫助你。你有沒有嘗試過這樣的事情:
@objc private func addItemsToBasket(_ button: UIButton) {
button.setTitleColor(.clear, for: .normal)
DispatchQueue.global.async {
Basket.addItems(keys: self.planner.currentDayKeys())
}
}
但是你要確保,如果你做你的一些用戶界面的改變Basket.addItems,你需要通過包裝他們中派遣他們回到主DispatchQueue.main.async關閉。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/345148.html
標籤:ios 迅速 并发 uicollectionview 大中央调度
上一篇:異步等待串列詳細資訊
下一篇:無法執行URL請求SWIFT
