Это происходит потому, что когда вы добавляете новую ячейку, вызывается performBatchUpdates
, все видимые ячейки перерисовываются, и преобразование применяется снова , по существу, удаляя преобразование.
Вы хотите, чтобы это происходило только один раз, поэтому клетки сохранят свое преобразование. Для этого убедитесь, что преобразование ячеек соответствует преобразованию collectionView
, которое, как мы знаем, не изменится (поскольку само представление коллекции не перерисовывается на performBatchUpdates
).
Кроме того, вам не нужно инвертировать одно из преобразований - вращение на -π равно вращению на π.
collectionView?.transform = CGAffineTransform.init(rotationAngle: CGFloat(Double.pi))
cell.transform = collectionView!.transform