Diese Bibliothek bietet einem Async Image Downloader mit Cache -Unterstützung. Für den Einfachheit halber haben wir Kategorien für UI -Elemente wie UIImageView , UIButton , MKAnnotationView hinzugefügt.
HINWEIS:
SDist das Präfix für einfaches Design (das Teamname in der Daily Motion Company des Autors Olivier Poitrey)
UIImageView , UIButton , MKAnnotationView Hinzufügen von Webbild- und Cache -Management Ab 5.19+ unterstützt SDWebimage VisionOs für alle Paketmanager (einschließlich Cocoapods/Carthage/SPM). Aktualisieren Sie die zugehörigen Tools, wenn Sie mit Problemen konfrontiert sind.
Für 5.18+ kann SDWebimage für die VisionOS -Plattform kompiliert werden. Es befindet sich jedoch immer noch in der Beta und kann im Gegensatz zur stabilen Unterstützung von iOS UIKIT Probleme enthalten. Willkommen, um ein Problem zu melden.
Um auf VisionOs aufzubauen, unterstützen wir derzeit nur die Standard -Xcode -Integration.
Siehe Installation with Swift Package Manager und Manual Installation Guide unten.
Hinweis: Für einen neuen Benutzer
SDWebimage Verwenden Sie das Codierer-Plugin-System, um sowohl das integrierte als auch das externe Bildformat von Apple zu unterstützen. Für statisches Bild verwenden wir immer Apple integriert als Fallback, aber nicht für animiertes Bild. Derzeit (aktualisiert auf 5.19.x Version) registrieren wir standardmäßig nur auf dem modernen Format wie Awebp/HICS/AVIF, selbst in der neuesten Firmware, nur auf das moderne Format wie Awebp/HICS/AVIF.
Wenn Sie diesen Animationsbildformat unterstützen möchten, registrieren Sie sich einfach selbst mit einem Zeilencode. Weitere Informationen finden Sie in WebP-Codierer und HIC-Codierer
In Zukunft werden wir dieses Verhalten ändern, indem wir immer das gesamte integrierte Animationsformat von Apple registrieren, um es dem neuen Benutzer leicht zu integrieren.
Um SDWebimage fokussiert und auf die Kernmerkmale zu beschränken, aber auch Erweiterbarkeit und benutzerdefinierte Verhaltensweisen zu ermöglichen, haben wir uns während des 5.0 -Refactoring auf die Modularisierung der Bibliothek konzentriert. Daher haben wir neue Module in Sdwebimage Org bewegt/gebaut.
Swiftui ist ein innovatives UI -Framework, das in Swift geschrieben wurde, um Benutzeroberflächen auf allen Apple -Plattformen zu erstellen.
Wir unterstützen Swiftui, indem wir ein brandneues Rahmen namens SDWebimagesWiftui erstellen, das auf SDWebimage -Kernfunktionen (Caching, Ladung und Animation) aufgebaut ist.
Das neue Framework führt zwei View Structs WebImage und AnimatedImage für Swiftui World ein, ImageIndicator -Modifikator für jede Ansicht, ImageManager Observable Object für Datenquelle. Unterstützt iOS 13+/macos 10.15+/tvos 13+/watchos 6+ und Swift 5.1. Versuchen Sie es gut, Feedback zu geben!
Photos.framework ).LPLinkView (mit LinkPresentation.framework ) Sie können diese direkt verwenden oder eigene Komponenten erstellen, indem Sie die anpassbare Architektur von SDWebimage verwenden.
pod try SDWebImage# import < SDWebImage/SDWebImage.h >
...
[imageView sd_setImageWithURL: [ NSURL URLWithString: @" http://www.domain.com/path/to/image.jpg " ]
placeholderImage: [UIImage imageNamed: @" placeholder.png " ]];import SDWebImage
imageView . sd_setImage ( with : URL ( string : " http://www.domain.com/path/to/image.jpg " ) , placeholderImage : UIImage ( named : " placeholder.png " ) )In 5.0 haben wir einen brandneuen Mechanismus zur Unterstützung animierter Bilder eingeführt. Dies beinhaltet animiertes Bildladen, Rendering, Decodieren und unterstützt auch Anpassungen (für erweiterte Benutzer).
Diese animierte Bildlösung ist für iOS / tvOS / macOS verfügbar. Das SDAnimatedImage ist Unterklasse von UIImage/NSImage , und SDAnimatedImageView ist Unterklasse von UIImageView/NSImageView , um sie mit den gemeinsamen Frameworks -APIs kompatibel zu machen.
Das SDAnimatedImageView unterstützt die bekannten Methoden der Kenntnisse der Begründung, und funktioniert wie Drop-In-Ersatz für UIImageView/NSImageView .
Haben Sie nicht UIView (wie WatchKit oder CALayer )? Sie können SDAnimatedPlayer die Player -Engine für fortschrittliche Wiedergabe und Rendering verwenden.
Ausführlichere Informationen finden Sie in animiertem Bild.
SDAnimatedImageView *imageView = [SDAnimatedImageView new ];
SDAnimatedImage *animatedImage = [SDAnimatedImage imageNamed: @" image.gif " ];
imageView.image = animatedImage; let imageView = SDAnimatedImageView ( )
let animatedImage = SDAnimatedImage ( named : " image.gif " )
imageView . image = animatedImage Um Dinge aufzuräumen und unser Kernprojekt weniger zu machen, haben wir beschlossen, dass die Integration FLAnimatedImage nicht hierher gehört. Ab 5.0 wird dies weiterhin verfügbar sein, aber unter einem speziellen Repo SdwebimageFlugin.
Es gibt 5 Möglichkeiten, SDWebimage in Ihrem Projekt zu verwenden:
Cocoapods ist ein Abhängigkeitsmanager für Objective-C, der den Prozess der Verwendung von Bibliotheken von Drittanbietern in Ihren Projekten automatisiert und vereinfacht. Weitere Informationen finden Sie im Abschnitt "Erste Schritte".
platform :ios, '8.0'
pod 'SDWebImage', '~> 5.0'
Swift Project musste zuvor use_frameworks! Damit alle Pods zu einem dynamischen Rahmen machen, damit Cocoapods funktionieren lassen.
Beginnend mit CocoaPods 1.5.0+ (mit Xcode 9+ ), das sowohl das Objektiv-C && Swift-Code in statische Framework aufbauen kann. Sie können modulare Header verwenden, um SDWebimage als statisches Framework zu verwenden, ohne die Verwendung von use_frameworks! :
platform :ios, '8.0'
# Uncomment the next line when you want all Pods as static framework
# use_modular_headers!
pod 'SDWebImage', :modular_headers => true
Weitere Informationen zu Cocoapods 1.5.0 - Swift statische Bibliotheken
Wenn nicht, müssen Sie immer noch use_frameworks! SDWebimage als dynamisches Framework zu verwenden:
platform :ios, '8.0'
use_frameworks!
pod 'SDWebImage'
Jetzt sind 2 Subspecs verfügbar: Core und MapKit (dies bedeutet, dass Sie nur einige der SDWebimage -Module installieren können. Standardmäßig erhalten Sie nur Core . Wenn Sie also MapKit benötigen, müssen Sie es angeben).
Podfile -Beispiel:
pod 'SDWebImage/MapKit'
Karthago ist ein leichter Abhängigkeitsmanager für Swift- und Objective-C. Es nutzt Cocoatouch -Module und ist weniger invasiv als Cocoapods.
Befolgen Sie die Anweisung auf Karthago, um mit Karthago zu installieren
Karthago -Benutzer können auf dieses Repository hinweisen und das generierte Framework verwenden, das sie möchten: SDWebimage, SdwebimAgemapkit oder beides.
Machen Sie den folgenden Eintrag in Ihrem Cartfile: github "SDWebImage/SDWebImage" und führen Sie carthage update durch, wenn dies das erste Mal, dass Sie Karthago im Projekt verwenden, einige zusätzliche Schritte durchführen, wie sie in Karthago erläutert werden.
Hinweis: Zu diesem Zeitpunkt bietet Carthage keine Möglichkeit, nur bestimmte Repository -Unterkomponenten (oder das Äquivalent zu den Unterspitzen von Cocoapods) zu erstellen. Alle Komponenten und ihre Abhängigkeiten werden mit dem obigen Befehl erstellt. Sie müssen jedoch keine Frameworks kopieren, die Sie nicht in Ihr Projekt verwenden. Wenn Sie beispielsweise
SDWebImageMapKitnicht verwenden, können Sie dieses Rahmen aus dem Carthage Build -Verzeichnis nach Abschlusscarthage updatenicht löschen.
Hinweis: Apple benötigt SDWebimage enthält Signaturen. Standardmäßig führt das
carthage buildBinary Framework nicht Codessign aus, dies verursacht Validierungsfehler. Sie können sich bei der Identität des Apple Developer -Programms oder mit dem binären Framework unterschreiben:
binary "https://github.com/SDWebImage/SDWebImage/raw/master/SDWebImage.json"
Swift Package Manager (SWIFTPM) ist ein Tool zur Verwaltung der Verteilung des Swift-Code sowie zur Abhängigkeit von der Familie. Von Xcode 11 wurde SwiftPM nativ in Xcode integriert.
SDWebimage Support Swiftpm aus Version 5.1.0. Um SwiftPM zu verwenden, sollten Sie Xcode 11 verwenden, um Ihr Projekt zu öffnen. Klicken Sie auf File -> Swift Packages -> Add Package Dependency , geben Sie die URL von SDWebimage Repo ein. Oder Sie können sich Xcode mit Ihrem GitHub -Konto anmelden und einfach SDWebImage in die Suche eingeben.
Nachdem Sie das Paket auswählen können, können Sie den Abhängigkeitstyp (Tagged -Version, Filiale oder Commit) auswählen. Dann richtet Xcode alle Zeug für Sie ein.
Wenn Sie ein Framework -Autor sind und SDWebimage als Abhängigkeit verwenden, aktualisieren Sie Ihr Package.swift -Datei:
let package = Package (
// 5.1.0 ..< 6.0.0
dependencies : [
. package ( url : " https://github.com/SDWebImage/SDWebImage.git " , from : " 5.1.0 " )
] ,
// ...
)Ab 5.19.2 stellt SDWebimage die kanonischen offiziellen Binary XCFramework auf Github -Release -Seiten zur Verfügung.
Sie können wählen, ob Sie SDWebImage-dynamic.xcframework.zip für dynamisch verknüpfte oder SDWebImage-static.xcframework.zip für static-gebundenes One herunterladen möchten.
Ziehen Sie die entpackte .xcframework in die Registerkarte Ihres Xcode -Projekts.
Aus Xcode 15 wird Apple die Signatur von Binary XCFramework überprüft, um Supply -Chain -Angriffe zu vermeiden.
Der Fingerabdruck sollte derzeit FC 3B 10 13 86 34 4C 50 DB 70 2A 9A D1 01 6F B5 1A 3E CC 8B 9D A9 B7 AE 47 A0 48 D4 D0 63 39 83
Das Zertifikat wird hier im Repo gespeichert
Der öffentliche Schlüssel wird hier im Repo gespeichert
Weitere Informationen finden Sie in den Ursprung Ihrer XCFrameworks
sudo xcode-select -s /path/to/Xcode.app
oder
export DEVELOPER_DIR=/path/to/Xcode.app/Contents/Developer
./Scripts/build-frameworks.sh
./Scripts/create-xcframework.sh
// https://developer.apple.com/support/third-party-SDK-requirements/
codesign --timestamp -v --sign "your own certificate" SDWebImage.xcframework
Weitere Informationen finden Sie unter Wiki: Manual Installation Guide
Importieren Sie in den Quelldateien, in denen Sie die Bibliothek verwenden müssen, die Dach -Header -Datei:
# import < SDWebImage/SDWebImage.h > Es wird auch empfohlen, die Modul -Import -Syntax zu verwenden, die für Cocoapods (aktivieren modular_headers )/karthago/swiftpm verfügbar ist.
@import SDWebImage;
Zu diesem Zeitpunkt sollte Ihr Arbeitsbereich ohne Fehler erstellen. Wenn Sie ein Problem haben, veröffentlichen Sie das Problem und die Community kann Ihnen helfen, es zu lösen.
Aus Xcode 15 stellen wir die neue PrivacyInfo.xcprivacy für Datenschutzdaten zur Verfügung. Weitere Informationen zum Datenschutz finden Sie in der Beschreibung der Datenverwendung in Datenschutzbewegungen
Sie können den Datenschutzbericht exportieren, nachdem Sie Ihre App archivieren, indem Sie SDWebimage über SWIFTPM/XCFRAMEWORK oder COCOAPODS ( use_frameworks auf True) integrieren.
Für die alte Version oder wenn Sie das statische AR -Archiv verwenden, wie dies in den Datenschutzdetails der App im App Store erforderlich ist, finden Sie hier die Liste der Datenerfassungspraktiken von SDWebimage.
Vielen Dank an alle Personen, die bereits zu SDWebimage beigetragen haben.
Der gesamte Quellcode ist unter der MIT -Lizenz lizenziert.
Um sich über SDWebimage -Architekturdesign für den Beitrag zu informieren, lesen Sie den Kern der SDWebimage V5.6 -Architektur. Danke @looseyi für den Beitrag und die Übersetzung.