Как сделать анимацию ячейки collection view ? Так что бы она поворачивалась как бы задней стороной
Анимация collection view
Например есть текст на английском. При нажатии на кнопку “перевести” ячейка (карточка к примеру) поворачивается другой стороной и на ней уже написан перевод на русском
Знаешь, вот если в лоб это реализовать, то можно ячейку коллекшн вью сделать прозрачной, на неё положить view0 нужного тебе цвета, а на него уже все элементы!
При нажатии на кнопку перевести:
запускаешь анимацию переворот для view0, и перезагружаешь ячейку с нужными тебе данными!
Проблемка
Как использовать функцию “поворота” если кнопка находится в ViewController, а UIView (вьюшка которая должна повернуться) в ViewControllerCell ?
Если функцию использовать через cell то при скроллинге все вьюшки крутятся
Подожди, еще раз: где находиться кнопка?
ты можешь чтоб не крутились все ячейки использовать индекс нужной тебе ячейки и вызывать анимацию только на нее!
Вопрос: ячеек должно переворачиваться за раз и как вы хотите определить какие\какая именно?
и по вопросу: [quote=“Xelper, post:9, topic:2903”]
Проблема в том что при быстром скроллинге вьюшки крутятся
[/quote]
это происходит по той причине, что ты применил
cell.RoteateView()
и оно срабатывает для тех ячеек которые небыли отрисованы!
Чтоб такого не происходило, нужно переворачивать только определенную ячейку!
Смысл в том, что вам нужно иметь индекс активной ячейки!
вот это может вам поможет форум
тога тебе нужно в методе “ячейка по индексу” убрать функцию поворота ячейки))
можно просто те ячейки что на экране перевернуть, а когда ты перегружаешь таблицу, остальные обрисовывать уже с контентом из другой стороны!
а как тебе в финале нужно?
смотри
var visibleCurrentCell: IndexPath? {
for cell in self.MyCollection.visibleCells {
let indexPath = self.MyCollection.indexPath(for: cell)
return indexPath
}
return nil
}
вот так ты получаешь индекс ячейки на экране
А вот так получаешь к ней доступ при нажать на кнопку:
(self.MyCollection.cellForItem(at: visibleCurrentCell!) as! CollectionViewCell).backgroundColor = .red
(MyCollection.cellForItem(at: visibleCurrentCell!) as! CollectionViewCell).RoteateView()
но это так, на скорую руку!
и очень прошу, название классов пиши с большой, а методов и переменных с маленькой!
Не стал создавать новую тему.
Что то не получается теперь возникли вопросы:
- Почему иногда переворачивается ячейка на +1 позицию (н та что расположенная на экране, а следующая)
- Воспользовался советом “а когда ты перегружаешь таблицу, остальные обрисовывать уже с контентом из другой стороны!” но почему-то работает через 2 ячейки (например хочу скрыть надпись. И работает так -“1 ячейка- надпись скрылась” “2 ячейка - надпись осталась” “3 ячейка - надпись осталась” “4 ячейка- надпись скрылась”. Почему так ?
Буду очень благодарен/ если подскажете кодом.