Esta biblioteca proporciona un descargador de imágenes Async con soporte de caché. Por conveniencia, agregamos categorías para elementos de interfaz de usuario como UIImageView , UIButton , MKAnnotationView .
Nota:
SDes el prefijo para el diseño simple (que es el nombre del equipo en Daily Motion Company del autor Olivier Poitrey)
UIImageView , UIButton , MKAnnotationView Agregar imagen web y gestión de caché Desde 5.19+, SDWebimage admite visos en todos los administradores de paquetes (incluye Cocoapods/Carthage/SPM). Actualice las herramientas relacionadas si se enfrenta a problemas.
Para 5.18+, SDWebimage se puede compilar para la plataforma VisionOS. Sin embargo, todavía está en Beta y May contiene problemas a diferencia del soporte estable de iOS Uikit. Bienvenido a intentarlo e informar el problema.
Para construir sobre los visos, actualmente solo apoyamos la integración estándar de Xcode.
Consulte Installation with Swift Package Manager y Manual Installation Guide a continuación.
Nota: para un nuevo usuario
SDWEBIMAGE Utilice el sistema de complemento Coder para admitir el formato de imagen incorporado y externo de Apple. Para la imagen estática siempre usamos el repleto de Apple AS AS Fallback, pero no para la imagen animada. Actualmente (actualizado a la versión 5.19.x) solo registramos el formato animado tradicional como GIF/APNG de forma predeterminada, sin el formato moderno como AWEBP/HEICS/AVIF, incluso en el último firmware.
Si desea este soporte de formato de imagen animado, simplemente regístrese solo con código de una línea, vea más en WebP Coder y HEIC Coder
En el futuro cambiaremos este comportamiento al registrar siempre todo el formato de imagen animado incorporado de Apple, para facilitar la integración del nuevo usuario.
Para mantener SDWebimage enfocado y limitado a las características centrales, pero también permitir la extensibilidad y los comportamientos personalizados, durante la refactorización 5.0 nos centramos en modularizar la biblioteca. Como tal, hemos movido/construido nuevos módulos a SDWebimage Org.
Swiftui es un marco innovador de la interfaz de usuario escrito en Swift para construir interfaces de usuario en todas las plataformas de Apple.
Apoyamos a Swiftui construyendo un nuevo marco llamado SDWebimagesWiftui, que se basa en las funciones centrales de SDWebimage (almacenamiento en caché, carga y animación).
El nuevo Framework introduce dos Vistas Structs WebImage y AnimatedImage para Swiftui World, ImageIndicator Modificador para cualquier vista, Objeto observable de ImageManager para la fuente de datos. Admite iOS 13+/macOS 10.15+/tvos 13+/watchos 6+ y Swift 5.1. ¡Que tenga un buen intento y brinde comentarios!
Photos.framework .LPLinkView (usando LinkPresentation.framework ) Puede usarlos directamente o crear componentes similares propios, utilizando la arquitectura personalizable de SDWebimage.
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 " ) )En 5.0, presentamos un nuevo mecanismo para soportar imágenes animadas. Esto incluye carga de imágenes animadas, representación, decodificación y también admite personalizaciones (para usuarios avanzados).
Esta solución de imagen animada está disponible para iOS / tvOS / macOS . SDAnimatedImage es una subclase de UIImage/NSImage , y SDAnimatedImageView es una subclase de UIImageView/NSImageView , para que sean compatibles con las API comunes de marcos.
El SDAnimatedImageView admite los métodos de categoría de carga de imágenes familiares, funciona como el reemplazo de entrega de UIImageView/NSImageView .
¿No tienes UIView (como WatchKit o CALayer )? Todavía puede usar SDAnimatedPlayer el motor del reproductor para reproducción y representación avanzadas.
Consulte la imagen animada para obtener información más detallada.
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 Para limpiar las cosas y hacer que nuestro proyecto principal haga menos cosas, decidimos que la integración FLAnimatedImage no pertenece aquí. A partir de 5.0, esto aún estará disponible, pero bajo un repositorio dedicado sdwebimageflplugin.
Hay 5 formas de usar SDWebimage en su proyecto:
Cocoapods es un gerente de dependencia para Objective-C, que automatiza y simplifica el proceso de usar bibliotecas de terceros en sus proyectos. Consulte la sección Comenzar para obtener más detalles.
platform :ios, '8.0'
pod 'SDWebImage', '~> 5.0'
¡El Proyecto Swift anteriormente tenía que usar use_frameworks! Para convertir todas las vainas en el marco dinámico para dejar que funcionen los cocoapodos.
Sin embargo, comenzando con CocoaPods 1.5.0+ (con Xcode 9+ ), que admite construir tanto el código Swift Objective-C && Swift en el marco estático. ¡Puede usar encabezados modulares para usar SDWebimage como marco estático, sin la necesidad de 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
Ver más sobre Cocoapods 1.5.0 - Bibliotecas estáticas Swift
Si no es así, ¡aún necesita agregar use_frameworks! Para usar SDWebimage como marco dinámico:
platform :ios, '8.0'
use_frameworks!
pod 'SDWebImage'
Hay 2 subespecs disponibles ahora: Core y MapKit (esto significa que solo puede instalar algunos de los módulos SDWebimage. Por defecto, obtiene solo Core , por lo que si necesita MapKit , debe especificarlo).
Ejemplo de podfile:
pod 'SDWebImage/MapKit'
Cartago es un gerente de dependencia liviano para Swift y Objective-C. Aprovecha los módulos de CocoAtouch y es menos invasivo que los cocoapods.
Para instalar con Cartago, siga las instrucciones en Cartago
Los usuarios de Carthage pueden señalar este repositorio y usar el marco generado que deseen: SDWebimage, SDWebimageMapkit o ambos.
Haga la siguiente entrada en su Cartfile: github "SDWebImage/SDWebImage" y luego ejecute carthage update si esta es la primera vez que usa Cartago en el proyecto, deberá seguir algunos pasos adicionales como se explica en Carthage.
Nota: En este momento, Carthage no proporciona una forma de construir solo subcomponentes de repositorio específicos (o equivalente a los subespecs de Cocoapods). Todos los componentes y sus dependencias se construirán con el comando anterior. Sin embargo, no necesita copiar marcos que no esté utilizando en su proyecto. Por ejemplo, si no está utilizando
SDWebImageMapKit, no dude en eliminar ese marco del directorio de compilación de Carthage después de que se completecarthage update.
Nota: Apple requiere SDWebimage contiene firmas. Por lo tanto, de forma predeterminada, el marco binario
carthage buildno realiza Codesign, esto causará un error de validación. Puede firmar con la identidad del programa de desarrolladores de Apple o usar el marco binario:
binary "https://github.com/SDWebImage/SDWebImage/raw/master/SDWebImage.json"
Swift Package Manager (SWIFTPM) es una herramienta para administrar la distribución del código SWIFT, así como la dependencia de la familia C. Desde Xcode 11, SwiftPM se integró de forma nativa con XCode.
SDWebimage Support SWIFTPM de la versión 5.1.0. Para usar SWIFTPM, debe usar Xcode 11 para abrir su proyecto. Haga clic en File -> Swift Packages -> Add Package Dependency , ingrese la URL de SDWebimage Repo. O puede iniciar sesión Xcode con su cuenta GitHub y simplemente escribir SDWebImage para buscar.
Después de seleccionar el paquete, puede elegir el tipo de dependencia (versión etiquetada, rama o confirmación). Entonces Xcode configurará todas las cosas para ti.
Si usted es un autor de marco y usa SDWebimage como dependencia, actualice su archivo Package.swift :
let package = Package (
// 5.1.0 ..< 6.0.0
dependencies : [
. package ( url : " https://github.com/SDWebImage/SDWebImage.git " , from : " 5.1.0 " )
] ,
// ...
)A partir de 5.19.2, SDWebimage proporciona el XCFramework XCFrame binario oficial canónico en las páginas de lanzamiento de GitHub.
Puede optar por descargar SDWebImage-dynamic.xcframework.zip para dinámica vinculada, o SDWebImage-static.xcframework.zip para uno vinculado estático.
Arrastre el .xcframework descomprimido en la pestaña Framework de su proyecto xcode.
Desde Xcode 15 Apple verificará la firma del XCFramework binario, para evitar el ataque de la cadena de suministro.
La huella digital actualmente debe ser 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
El certificado se almacena en el repositorio aquí
La clave pública se almacena en el repositorio aquí
Ver más: Verificar el origen de sus XCFrameworks
sudo xcode-select -s /path/to/Xcode.app
o
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
Ver más sobre wiki: guía de instalación manual
En los archivos de origen donde necesita usar la biblioteca, importe el archivo de encabezado para un paraguas:
# import < SDWebImage/SDWebImage.h > También se recomienda usar la sintaxis de importación del módulo, disponible para cocoapods (habilitar modular_headers )/carthage/swiftpm.
@import SDWebImage;
En este punto, su espacio de trabajo debe construir sin error. Si tiene problemas, publique el problema y la comunidad puede ayudarlo a resolverlo.
Desde Xcode 15, proporcionamos el nuevo archivo de PrivacyInfo.xcprivacy para obtener detalles de privacidad, consulte Describir el uso de datos en Manifiestas de privacidad
Puede exportar el informe de privacidad después de archivar su aplicación integrando sdwebimage a través de swiftpm/xcframework o cocoapods ( use_frameworks establecido en true).
Para la versión anterior o si está utilizando el archivo AR estático, como lo requiere los detalles de privacidad de la aplicación en la tienda de aplicaciones, aquí está la lista de prácticas de recopilación de datos de SDWebimage.
Gracias a todas las personas que ya han contribuido a SDWebimage.
Todo el código fuente tiene licencia bajo la licencia MIT.
Para conocer el diseño de arquitectura de SDWebimage para la contribución, lea el núcleo de la arquitectura SDWebimage v5.6. Gracias @looseyi por la publicación y la traducción.