Swift 2 – performBatchUpdates – анимировать ячейку один за другим при видимости внутри рамки UICollectionView

Я пытаюсь оживить каждую ячейку моего UICollectionView visilile в кадре. Каждый раз, когда я прокручиваю новую ячейку, появляется анимация.

Я делаю это, используя performBatchUpdates внутри cellForItemAtIndexPath однако анимация применяется ко всем ячейкам одновременно и очень быстро. Кажется, что анимация 1 секунды ее не распознается.

Также я пытаюсь найти способ применить анимацию к ячейке, когда кнопка нажата без успеха.

Код, который я использую:

 override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { let Cell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! CellClass self.collectionView?.performBatchUpdates({ Cell.layer.cornerRadius = 200 return }){ completed in UIView.animateWithDuration(1, animations: { Cell.layer.cornerRadius = 0 }) } Cell.playAnimationBtn.layer.setValue(indexPath.row, forKey: "indexPlayBtn") } @IBAction func actionGetAnimation(sender: UIButton) { let indexUser = (sender.layer.valueForKey("indexPlayBtn")) as! Int //Cell selected do animation corners = 200 } 

One Solution collect form web for “Swift 2 – performBatchUpdates – анимировать ячейку один за другим при видимости внутри рамки UICollectionView”

Вы можете сделать эту работу, когда вы перемещаете анимацию в willDisplayCell(_:cell:indexPath:) . Этот метод вызывается каждый раз, когда будет отображаться новая ячейка.

Вы не можете использовать UIView.animateWithDuration для свойств слоя. Для этого вам нужно использовать CABasicAnimation .

Если вы хотите анимировать ячейку, когда пользователь нажимает кнопку, вы можете вызвать animateCellAtIndexPath из приведенного ниже примера кода. Вы должны знать indexPath ячейки, чтобы сделать это. В этом примере я вызываю этот метод, когда пользователь выбирает ячейку.

 func collectionView(collectionView: UICollectionView, willDisplayCell cell: UICollectionViewCell, forItemAtIndexPath indexPath: NSIndexPath) { animateCell(cell) } func animateCell(cell: UICollectionViewCell) { let animation = CABasicAnimation(keyPath: "cornerRadius") animation.fromValue = 200 cell.layer.cornerRadius = 0 animation.toValue = 0 animation.duration = 1 cell.layer.addAnimation(animation, forKey: animation.keyPath) } func animateCellAtIndexPath(indexPath: NSIndexPath) { guard let cell = collectionView.cellForItemAtIndexPath(indexPath) else { return } animateCell(cell) } func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) { animateCellAtIndexPath(indexPath) } 
  • Как включить или отключить заголовки разделов в UICollectionView программно?
  • Прокрутка UICollectionView к элементу
  • UICollectionView reloadSection не удаляет старые представления из иерархии представлений
  • Проблема с размещением ячеек в пользовательской компоновке потока UICollectionViews
  • добавление UISearchBar в UICollectionviewController, встроенное в NavigationController IOS6
  • установить динамическую ширину и высоту ячейки просмотра коллекции
  • У вас нет фотографий из каталога CollectionView
  • Swift 3 UICollectionВыберите странное расстояние между ячейками
  • UICollectionview не загружает ячейки, когда макет горизонтальный, пока рама представления достаточно велика
  • Несколько представлений заголовков в UICollectionView и их проектирование с помощью Interface Builder
  • Почему метод systemLayoutSizeFittingSize вызывается на каждом UICollectionViewCell, даже если ячейки имеют фиксированный размер?
  • Interesting Posts

    Как установить edgeForExtendedLayout в none в Swift 3

    UI Automation onAlert метод не вызывается на симуляторе

    iOS: получить угол от геолокации от текущего местоположения без карты

    Применение фона градиента для UIView с использованием автоматической компоновки

    Каковы альтернативы «делегатам» для передачи данных между контроллерами?

    UIImagePickerController конфликтует с предварительным просмотром видео AVCaptureSession

    Firebase и Google Signin, дающие дубликаты символов

    UIView скрытое свойство … есть ли еще больше?

    Импорт 3D-объекта с анимацией из scn

    Тестирование / проверка тестирования A / B с помощью Firebase Remote Config в iOS

    Почему возникает статическая ошибка NSString?

    Randomize float с помощью arc4random?

    Может ли KIF настроить компоненты UIWebView?

    Лучший способ управлять раскадными файлами под git?

    Жизненный цикл объекта с методом, получающим блок, под ARC

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.