У меня есть collectionView, где я отображаю обычный UICollectionViewCell с кнопкой UIB внутри.На другом экране у меня есть список переключателей.Всякий раз, когда они изменяются, обновление отправляется на экран с collectionView.Когда переключатель я выключил (и источник данных обновился), я пытаюсь использовать функцию reloadData для повторного заполнения collectionView.Однако кнопки (ячейки) отображаются друг над другом.
Я пытался использовать reloadData, делая это в Dispatch.main.async, аннулируя collectionView, удаляя функцию deleteSections и получая доступ к определенной ячейке и удаляя ее с помощью cell.removeFromSuperView ().
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "identifier", for: indexPath)
let name = PickingState.getSelectedFilterValues()[indexPath.row]
let button = SelectionsItem(title: name, frame: createMockupButtonToGetFrame(name: name))
print(name)
cell.contentView.addSubview(button)
cell.contentView.addConstraintsWithFormat(formatString: "H:|[v0]|", views: button)
cell.contentView.addConstraintsWithFormat(formatString: "V:|[v0]|", views: button)
return cell
}
Ожидайте, что ячейки будут перерисованы и не будут помещены друг на друга.