Я пытался выяснить, как в реальном времени обновлять представление uicollectionview.
Я пытался использовать ряд различных методов, чтобы сделать это, используя reloadData, reloadItems и reloadSections. Использование обоих DispatchQueue.main.async и нет.
Я не могу понять, как добраться до того момента, когда пользователь выбирает одну из ячеек, чтобы обновить содержимое этой ячейки прямо перед пользователем. Специально сделайте текст метки полужирным, а не полужирным на основе кликов по ячейке.
Вот метка, которую я настроил в swift:
let nameLabel: UILabel = {
let label = UILabel()
label.text = ""
return label
}()
Вот дидселект для коллекции view
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let cell = collectionView.cellForItem(at: indexPath) as! FilterCollectionViewCell
let selected = ViewController.brands[indexPath.item]
if FilterLauncher.selectedOptions.contains(selected){
let loc = FilterLauncher.selectedOptions.firstIndex(of: selected)
FilterLauncher.selectedOptions.remove(at: loc!)
cell.nameLabel.font = UIFont.boldSystemFont(ofSize: 2.0)
DispatchQueue.main.async {
collectionView.reloadItems(at: [indexPath])
}
}
else{
FilterLauncher.selectedOptions.append(selected)
cell.nameLabel.font = UIFont.boldSystemFont(ofSize: 15.0)
DispatchQueue.main.async{
self.collectionView.reloadItems(at: [indexPath])}
}
}
В итоге текст выбранной ячейки меняется на полужирный, но задерживается. Я пытаюсь выбрать другую ячейку, когда ячейка, которую я пытался выделить, набирает жирный шрифт. Когда я в первый раз выбираю ячейку, она мигает, изменения, которые я хочу, но затем возвращается.
Коллекция Просмотр примера выбора текста изменения ячейки