Как я могу запустить мой gif только один раз, используя FLAnimatedImage? - PullRequest
0 голосов
/ 19 ноября 2018

Я использую xcode 10.1 и swift 4.2, у меня есть GIF, который я сделал с помощью Photoshop, и он воспроизводится один раз в браузере и в Android Studio. Но когда я импортирую его в xcode и нажимаю на него в раскадровке, он играет вечно. Это также играет несколько раз в моем виртуальном симуляторе.

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

Я использую FLAnimatedImage, я нашел похожий вопрос, но не смог найти свое решение. Вот почему я спрашиваю снова.

Я не хочу менять файлы основной библиотеки, так как у меня есть другой gif, который я хочу проигрывать вечно. Поэтому мне просто нужно остановить первый GIF в последнем кадре.

Вы можете увидеть небольшую часть моего кода:

@IBOutlet var LogoView: FLAnimatedImageView!

LogoView.contentMode = UIView.ContentMode.scaleAspectFit
LogoView.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.height)
LogoView!.autoresizingMask = [.flexibleWidth, .flexibleHeight]

let imageData = try! Data(contentsOf: Bundle.main.url(forResource: "logo_gif", withExtension: "gif")!)
            LogoView.animatedImage = FLAnimatedImage(animatedGIFData: imageData)

Заранее спасибо:)

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Вы можете присвоить свой цикл imageCompletionBlockView

self.imageView.loopCompletionBlock = {_ in
    self.imageView.stopAnimating()
}
0 голосов
/ 19 ноября 2018

Вы можете использовать следующую библиотеку.

https://github.com/wangjwchn/AImage

   let image = AImage(url: Bundle.main.url(forResource: "test", withExtension: "gif")!)

/* Create AImageView */
let imageview = AImageView(frame:CGRect(x: 0.0, y: 50.0, width: 380.0, height: 212.0))

/* Add AImage to AImageView */
imageview.add(image: image!)

/* Start displaying animated image */
imageview.play = true

...
...

/* Stop displaying animated image */
imageview.play = false

передайте true для свойства play, когда вы хотите, чтобы оно началось, и передайте false, если вы хотите остановить.

Вы также можете использовать этот класс AImageView из раскадровки, изменив UIImageView на AImageView из инспектора классов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...