Я пытаюсь отфильтровать мой homeCollectionView с помощью SegmentControl. При прикосновении к сегменту я фильтрую содержимое на основе тега, доступного в словаре. Когда я выполняю ReloadData и переключаюсь между сегментами, в первом go (когда я касаюсь сегментов в первый раз), фильтр работает, и все данные поступают, но когда я возвращаюсь к сегментам, часть содержимого в ячейке, особенно текст LabelViews не отображаются впоследствии. Кроме того, это происходит для случайного indexPath.
Это мой код:
@objc func toggleHomeContent(_ notification: NSNotification) {
toggleValContType = notification.object as? String ?? "all"
if (toggleValContType == "all") {
mainArrayData = primaryArrayData
}
else if (toggleValContType == "collections") {
mainArrayData = primaryArrayData { $0["filterType"] == "Col" || $0["filterType"] == "CTA" }
}
else if (toggleValContType == "books") {
mainArrayData = primaryArrayData { $0["filterType"] == "Book" || $0["filterType"] == "CTA" }
}
homeCollectionView?.reloadData()
homeCollectionView?.layoutIfNeeded()
homeCollectionView?.collectionViewLayout.invalidateLayout()
//DispatchQueue.main.async(execute: homeCollectionView.reloadData)
}
И массивы объявляются так:
var mainArrayData : [[String:String]] = HomeArray().mainArray
var primaryArrayData: [[String:String]] = HomeArray().mainArray
Вот снимок того, что проблема:
Снимок проблемы
Заранее спасибо!