2016-11-22 2 views
0

Ich möchte GIF in meine Swift 3-Anwendung laden. Ich habe diesen Code verwendet, aber das gif wird nicht angezeigt.Swift 3: Lade GIF in UIWebView

Ich weiß nicht, was ist falsch mit meinem Code (Ich bin wirklich neu in Swift und iOS-Entwicklung).

Irgendwelche Hilfe bitte?

+2

Unrelated von warum verwenden Sie 'NSData (contentsOfFile:)' statt 'Daten (contentsOf: Optionen:)'? Verwenden Sie Swift-Klassen, insbesondere wenn die nächste Zeile die Cocoa-Klasse in eine Swift-Klasse umwandelt. – rmaddy

+0

Mögliches Duplikat von [Korrekter Weg zum Laden eines Bildes in UIWebView vom NSData-Objekt] (http://stackoverflow.com/questions/2827891/correct-way-to-load-image-into-uiwebview-from-nsdata-object) – Ryan

+0

@ rmaddy, weil ich diesen Fehler bekommen habe, wenn ich Data verwende: Argument-Labels '(contentsOfFile :)' passen nicht zu irgendwelchen verfügbaren Überladungen –

Antwort

5

fand ich SwiftGif Lbrary von Github, es nicht webview verwenden (wenn Sie webview schreiben mir Kommentare zu verwenden, um die Antwort zu aktualisieren)

EDIT:

Webview:

let url = Bundle.main.url(forResource: "source", withExtension: "gif")! 
let data = try! Data(contentsOf: url) 
webview.load(data, mimeType: "image/gif", textEncodingName: "UTF-8", baseURL: NSURL() as URL) 
webview.scalesPageToFit = true 
webview.contentMode = UIViewContentMode.scaleAspectFit 

Hoffe es hilft.

+0

Danke Ich habe dieses Repo schon gefunden, aber ich benutze swift 3 und ios 8+. Kannst du mir bitte die Webview-Version geben? –

+0

@Llg es ist für swift 3 Ich habe gerade in xcode 8 getestet (aber ich werde es mit webview aktualisieren) –

+0

@Llg Ryan hat Ihre Frage zuerst beantwortet, testen Sie seinen Code, es funktioniert. –

4

Hier ist ein funktionierendes Beispiel. Ich habe das gif-Bild aus dem Internet heruntergeladen und dem Beispielprojekt hinzugefügt.

let url = Bundle.main.url(forResource: "hsk", withExtension: "gif")! 
let data = try! Data(contentsOf: url) 
webView.load(data, mimeType: "image/gif", textEncodingName: "UTF-8", baseURL: NSURL() as URL) 

Mit dem Code oben konnte ich das animierte gif wie unten sehen.

enter image description here

+0

Danke, es funktioniert! Was ist, wenn die Größe der Webansicht kleiner ist als das gif? Mit anderen Worten möchte ich in eine kleine Webansicht einfügen, aber ich möchte den gesamten Inhalt des Gifs zeigen (ich möchte nicht scrollen, um die versteckten Teile des Gifs zu sehen) –

+0

Es gibt eine Möglichkeit, die Inhaltsgröße von webView zu überprüfen und vielleicht Sie können ein HTML/CSS schreiben, um die Größe von GIF zu verkleinern.Wenn Sie WebView nur zum Anzeigen von animiertem Gif verwenden, können Sie Daten abrufen und mit 'UIImageView' animieren oder Sie können eine Bibliothek von Drittanbietern wie [Gifu] (https://github.com/kaishnin/Gifu) verwenden. – Ryan

+0

Dank Ryan. Eine letzte Frage bitte: Wie kann man das Gif immer spielen? Mein GIF hört auf, nach einer kleinen Zeit zu animieren –