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 как я могу предварительно загружать данные за пределы cellForItemAtIndexPath для использования в нем?
  • Как я могу использовать UISearchDisplayController с UICollectionViewController?
  • Как обновить progressBar в подклассе UICollectionViewCell при загрузке файла
  • Создание программного обеспечения UICollectionView
  • iOS 8 GM не обновляет ограничения на представления коллекции
  • UICollectionView cellForItemAtIndexPath не регистрирует ячейку
  • Остановка `UICollectionViewCell` исчезает после изменения границ UICollectionView`
  • Попытка переопределить «выбранный» в UICollectionViewCell Swift для пользовательского состояния выбора
  • Как добавить метку времени в пузырь сообщения?
  • Interesting Posts

    Dropbox iOS SDK: WebKit отменил исключение нечистоты

    Интеграция SDK для Facebook в моей iOS-платформе

    ResponseSerializer 'не может вызывать значение нефункционного типа «NSHTTPURLResponse?» С Swift 3

    В Swift 2 нет кнопки «Назад»

    как исправить предупреждение xcode «Результат выражения не используется»

    IOS эквивалент Paint.breakText () для Android

    создать несколько вытянутых линий

    Обновление управляемого приложения и полезной нагрузки приложения

    XCode 9. Не удалось установить определяемое пользователем свойство в построителе интерфейса

    Согласование делегатов и MFMailComposeViewController

    Swift – динамический размер UITableViewCell, основанный на соотношении сторон изображения

    Xcode Build Script (Build Phases-> Run Script) Increment Build Version на основе имени пользователя (пользователя)

    Перемещение GMSMarker с помощью X Meters Отклоняет

    Как запустить новый экран в IOS?

    Список всех зависимостей, используемых конкретной зависимостью в подфайле

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