ASNetworkImageNode gif не загружается

Я создаю настраиваемый узел, чтобы показать файл gif с кнопкой воспроизведения и паузы. Ниже мой код.

import Foundation
import AsyncDisplayKit

class GifNode: ASCellNode {
    var gifImageNode:ASNetworkImageNode = {
        let node = ASNetworkImageNode()
        node.contentMode = .scaleAspectFit
        node.shouldRenderProgressImages = true
        return node
    }()
    var playImage: ASImageNode = {
        let node = ASImageNode()
        node.contentMode = .scaleAspectFit
        node.style.height = ASDimensionMakeWithPoints(30)
        node.style.height = ASDimensionMakeWithPoints(30)
        node.backgroundColor = .gray
        node.image = #imageLiteral(resourceName: "play")
        return node
    }()

    init(model:GifContent)
    {
        super.init()

        self.automaticallyManagesSubnodes = true

        let width = UIScreen.main.bounds.size.width
        let height = (width * model.height) / model.width

        gifImageNode.url =  URL(string: "https://i.pinimg.com/originals/07/44/38/074438e7c75034df2dcf37ba1057803e.gif")
        gifImageNode.style.width = ASDimensionMake(width)
        gifImageNode.style.height = ASDimensionMake(height)

        gifImageNode.animatedImagePaused = true

        gifImageNode.addTarget(self, action: #selector(self.toggleGifPlay), forControlEvents: .touchUpInside)
    }

    @objc func toggleGifPlay()
    {
        self.gifImageNode.animatedImagePaused = !self.gifImageNode.animatedImagePaused
        self.playImage.isHidden = !self.gifImageNode.animatedImagePaused
    }

    override func layoutSpecThatFits(_ constrainedSize: ASSizeRange) -> ASLayoutSpec {
        let playButtonCenterSpec = ASCenterLayoutSpec(centeringOptions: .XY, sizingOptions: .minimumXY, child: self.playImage)
        return ASOverlayLayoutSpec(child: gifImageNode, overlay: playButtonCenterSpec)
    }
}

Когда я пытаюсь использовать узел gif в другом узле ASCellNode, он не отображается. Я вижу кнопку воспроизведения, но не сам файл gif. Если я попытаюсь загрузить jpeg с тем же элементом управления, все будет нормально. Также он отлично работает, если я пытаюсь загрузить gif напрямую, а не использовать вышеуказанный класс.

Не уверен, что я что-то упускаю.

Вы используете тот же URL для другого узла? Мб это просто обналичили?

Bimawa 14.07.2018 10:08

Я пробовал такой же, а также другой URL-адрес.

Hemant Mane 15.07.2018 10:10

Можете ли вы предоставить простой пример приложения для игры?

Bimawa 15.07.2018 14:26

Я создал репозиторий git AsyncDisplayKitGifIssue. В MyNode.swift есть 2 функции. Вы можете переключиться, чтобы увидеть результат.

Hemant Mane 15.07.2018 18:00

Я тестирую ваше приложение, но gifImageNode.animatedImagePaused = true по умолчанию отключена анимация ur, что вы хотите? Можешь ли ты вызвать мне по скайпу: бимава

Bimawa 15.07.2018 18:41
take.ms/JeD4v
Bimawa 15.07.2018 18:47

такой глупый. Не понимал, что AnimagePaused вызывает эту проблему. Еще раз спасибо @Bimawa

Hemant Mane 15.07.2018 18:58

Без проблем, мой друг. Постараюсь добавить за вас ответ.

Bimawa 15.07.2018 19:08
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
8
372
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я тестирую ваше приложение, но gifImageNode.animatedImagePaused = true по умолчанию отключена анимация ur.

Другие вопросы по теме