Esta biblioteca fornece um download de imagem assíncrono com suporte ao cache. Por conveniência, adicionamos categorias para elementos da interface do usuário, como UIImageView , UIButton , MKAnnotationView .
Nota:
SDé o prefixo para design simples (que é o nome da equipe na Daily Motion Company do autor Olivier Poitrey)
UIImageView , UIButton , MKAnnotationView ADICIONE A partir de 5.19+, o SDWebImage suporta o Visionos em todos os gerentes de pacotes (inclua Cocoapods/Cartago/SPM). Atualize as ferramentas relacionadas se você estiver enfrentando problemas.
Para 5.18+, o SDWebImage pode ser compilado para a plataforma Visionos. No entanto, ainda está na versão beta e pode contém problemas ao contrário do suporte estável do iOS Uikit. Bem -vindo para tentar e relatar problemas.
Para desenvolver o Visionos, atualmente apoiamos apenas a integração padrão do Xcode.
Consulte Installation with Swift Package Manager e Manual Installation Guide abaixo.
Nota: Para novo usuário
SDWebImage Use o sistema de plug-in de codificador para suportar o formato de imagem interno e externo da Apple. Para a imagem estática, sempre usamos o incorporado da Apple como fallback, mas não para a imagem animada. Atualmente (atualizado para a versão 5.19.x), registramos apenas o formato animado tradicional como GIF/APNG por padrão, sem o formato moderno como AWEBP/HEICS/AVIF, mesmo no firmware mais recente.
Se você deseja que esse suporte de formato de imagem animado, basta registrar-se por si mesmo com código de uma linha, veja mais no codificador Webp e no Coder Heic
No futuro, mudaremos esse comportamento sempre registrando todo o formato de imagem animado interno da Apple, para facilitar a integração do novo usuário.
Para manter o SDWebImage focado e limitado aos principais recursos, mas também permitir extensibilidade e comportamentos personalizados, durante a refatoração 5.0, focamos na modularização da biblioteca. Como tal, movemos/construímos novos módulos para o SDWebImage Org.
O Swiftui é uma estrutura de interface do usuário inovadora escrita no SWIFT para criar interfaces de usuário em todas as plataformas da Apple.
Apoiamos o Swiftui construindo uma nova estrutura chamada Sdwebimageswiftlui, que é construída sobre as funções principais do SDWebImage (cache, carregamento e animação).
A nova estrutura apresenta duas visualizações Structs WebImage e AnimatedImage para Swifttu World, Modificador ImageIndicator para qualquer visualização, o objeto ImageManager observável para a fonte de dados. Suporta iOS 13+/MacOS 10.15+/tvOS 13+/watchOS 6+ e Swift 5.1. Tenha uma boa tentativa e forneça feedback!
Photos.framework )LPLinkView (usando LinkPresentation.framework ) Você pode usá -los diretamente ou criar componentes semelhantes, usando a arquitetura personalizável da 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 " ) )Em 5.0, introduzimos um novo mecanismo para apoiar imagens animadas. Isso inclui carregamento de imagem animado, renderização, decodificação e também suporta personalizações (para usuários avançados).
Esta solução de imagem animada está disponível para iOS / tvOS / macOS . O SDAnimatedImage é subclasse de UIImage/NSImage , e SDAnimatedImageView é subclasse de UIImageView/NSImageView , para torná -los compatíveis com as APIs de estrutura comum.
O SDAnimatedImageView suporta os métodos familiares de categoria de carregamento de imagem, funciona como substituição de drop-in para UIImageView/NSImageView .
Não tem UIView (como WatchKit ou CALayer )? Você ainda pode usar SDAnimatedPlayer o motor do jogador para reprodução e renderização avançadas.
Veja a imagem animada para obter informações mais detalhadas.
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 limpar as coisas e fazer com que nosso projeto principal faça menos coisas, decidimos que a integração FLAnimatedImage não pertence aqui. A partir de 5.0, isso ainda estará disponível, mas sob um repo sdwebImageflplugin dedicado.
Existem 5 maneiras de usar o SDWebImage em seu projeto:
O Cocoapods é um gerente de dependência do Objective-C, que automatiza e simplifica o processo de uso de bibliotecas de terceiros em seus projetos. Veja a seção de início para obter mais detalhes.
platform :ios, '8.0'
pod 'SDWebImage', '~> 5.0'
O Swift Project anteriormente tinha que usar use_frameworks! Para transformar todos os pods na estrutura dinâmica para permitir que os cocoapods funcionem.
No entanto, começando com CocoaPods 1.5.0+ (com Xcode 9+ ), que suporta criar o código Objective-C && Swift na estrutura estática. Você pode usar cabeçalhos modulares para usar o SDWebImage como estrutura estática, sem a necessidade 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
Veja mais sobre Cocoapods 1.5.0 - Bibliotecas estáticas rápidas
Caso contrário, você ainda precisa adicionar use_frameworks! Para usar o sdwebimage como estrutura dinâmica:
platform :ios, '8.0'
use_frameworks!
pod 'SDWebImage'
Existem 2 subespecs disponíveis agora: Core e MapKit (isso significa que você pode instalar apenas alguns dos módulos SDWebImage. Por padrão, você obtém apenas Core ; portanto, se precisar MapKit , precisará especificá -lo).
Exemplo de podfile:
pod 'SDWebImage/MapKit'
Cartago é um gerente de dependência leve para Swift e Objective-C. Ele aproveita os módulos cocoatouch e é menos invasivo que os cocoapods.
Para instalar com Cartago, siga as instruções sobre Cartago
Os usuários do Cartago podem apontar para este repositório e usar a estrutura gerada que eles gostariam: sdwebimage, sdwebimageMapkit ou ambos.
Faça a seguinte entrada em seu arquivo Cartfile: github "SDWebImage/SDWebImage" e execute carthage update Se esta é a primeira vez usando o Cartago no projeto, você precisará seguir algumas etapas adicionais, conforme explicado em Cartago.
NOTA: Neste momento, o Cartago não fornece uma maneira de criar apenas subcomponentes específicos do repositório (ou equivalente aos subespecs de Cocoapods). Todos os componentes e suas dependências serão criados com o comando acima. No entanto, você não precisa copiar estruturas que não está usando em seu projeto. Por exemplo, se você não estiver usando
SDWebImageMapKit, fique à vontade para excluir essa estrutura do diretório de construção do Cartago após a conclusãocarthage update.
NOTA: A Apple requer sdwebimage contém assinaturas. Portanto, por padrão, a estrutura binária
carthage buildnão faz o código, isso causará erro de validação. Você pode assinar -se com a identidade do programa de desenvolvedores da Apple ou usando a estrutura binária:
binary "https://github.com/SDWebImage/SDWebImage/raw/master/SDWebImage.json"
O Swift Package Manager (SWIFTPM) é uma ferramenta para gerenciar a distribuição do código SWIFT, bem como a dependência da família C. Do Xcode 11, o SWIFTPM foi integrado nativamente ao Xcode.
SDWebImage Support Swiftpm da versão 5.1.0. Para usar o SWIFTPM, você deve usar o Xcode 11 para abrir seu projeto. Clique em File -> Swift Packages -> Add Package Dependency , digite URL do SDWebImage Repo. Ou você pode fazer login Xcode com sua conta do Github e apenas digitar SDWebImage para pesquisar.
Depois de selecionar o pacote, você pode escolher o tipo de dependência (versão marcada, ramificação ou compromisso). Em seguida, o Xcode configurará todas as coisas para você.
Se você é um autor da estrutura e usa o SDWebImage como uma dependência, atualize seu arquivo 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, a SDWebImage fornece o oficial de liberação do XCFRameWork binário oficial do GitHub.
Você pode optar por baixar SDWebImage-dynamic.xcframework.zip para um dinâmico vinculado um ou SDWebImage-static.xcframework.zip para vinculado estático.
Arraste a descompactação .xcframework .
Do Xcode 15, a Apple verificará a assinatura do xcframework binário, para evitar ataques da cadeia de suprimentos.
Atualmente, a impressão digital deve 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
O certificado é armazenado no repositório aqui
A chave pública é armazenada no repo aqui
Veja mais: Verificando a origem do seu xcframeworks
sudo xcode-select -s /path/to/Xcode.app
ou
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
Veja mais no wiki: guia de instalação manual
Nos arquivos de origem em que você precisa usar a biblioteca, importe o arquivo de cabeçalho do guarda -chuva:
# import < SDWebImage/SDWebImage.h > Também é recomendável usar a sintaxe de importação do módulo, disponível para cocoapods (Ativar modular_headers )/Cartago/swiftpm.
@import SDWebImage;
Neste ponto, seu espaço de trabalho deve ser construído sem erro. Se você estiver tendo problemas, publique o problema e a comunidade pode ajudá -lo a resolvê -lo.
Do Xcode 15, fornecemos o novo arquivo PrivacyInfo.xcprivacy para detalhes da privacidade, consultando o uso de dados nos manifestos de privacidade
Você pode exportar o relatório de privacidade após arquivar seu aplicativo, integrando o SDWebImage via Swiftpm/Xcframework ou Cocoapods ( use_frameworks definido como true).
Para a versão antiga ou se você estiver usando o estático Archive, conforme exigido pelos detalhes de privacidade do aplicativo na App Store, aqui está a lista de práticas de coleta de dados da SDWebimage.
Obrigado a todas as pessoas que já contribuíram para a Sdwebimage.
Todo o código -fonte está licenciado sob a licença do MIT.
Para aprender sobre o design da arquitetura da Sdwebimage para contribuição, leia o núcleo da arquitetura Sdwebimage v5.6. Obrigado @looseyi pela postagem e tradução.