このライブラリは、キャッシュサポートを備えた非同期画像ダウンローダーを提供します。便利なため、 UIImageView 、 UIButton 、 MKAnnotationViewなどのUI要素のカテゴリを追加しました。
注:
SD、シンプルなデザインのプレフィックスです(これは、著者Olivier PoitreyのDaily Motion Companyのチーム名です)
UIImageView 、 UIButton 、 MKAnnotationViewのカテゴリWeb画像とキャッシュ管理の追加5.19+から、SDWebimageはすべてのパッケージマネージャーのVisionOSをサポートしています(Cocoapods/Carthage/SPMを含む)。問題に直面している場合は、関連するツールをアップグレードします。
5.18+の場合、SdWebimageをVisionOSプラットフォーム用にコンパイルできます。ただし、まだベータ版であり、安定したiOS UIKITサポートとは異なり、問題が含まれている場合があります。試して、報告してください。
Visionosに基づいて構築するために、現在、標準のXcode統合のみをサポートしています。
Installation with Swift Package Manager Manual Installation Guide付きのインストールをご覧ください。
注:新しいユーザー用
sdwebimageは、Coderプラグインシステムを使用して、Appleの組み込みおよび外部画像形式の両方をサポートします。静的画像の場合、Appleの組み込みは常にフォールバックとして使用しますが、アニメーション画像用ではありません。現在(5.19.xバージョンに更新されています)、最新のファームウェアであっても、AWEBP/HEICS/AVIFのような最新の形式なしでは、デフォルトでGIF/APNGのような従来のアニメーション形式のみを登録しています。
これらのアニメーション化された画像形式のサポートが必要な場合は、ワンラインコードで自分で登録するだけで、Webp CoderとHEIC Coderで詳細を参照してください。
将来的には、新しいユーザーが統合できるようにするために、常にすべてのAppleの組み込みのアニメーション画像形式をすべて登録することにより、この動作を変更します。
SDWebimageをコア機能に焦点を合わせ、制限するだけでなく、5.0リファクタリング中にライブラリのモジュール化に焦点を当てた5.0のリファクタリング中に、拡張性とカスタムの動作を可能にするために。そのため、新しいモジュールをsdwebimage組織に移動/構築しました。
Swiftuiは、Swiftで書かれた革新的なUIフレームワークで、すべてのAppleプラットフォームにユーザーインターフェイスを構築しています。
SdwebimagesWiftuiと呼ばれる新しいフレームワークを構築することにより、Swiftuiをサポートします。SDWebimageコア関数(キャッシュ、ロード、アニメーション)の上に構築されています。
新しいフレームワークでは、Swiftui Worldの2つのビュー構造WebImageとAnimatedImage 、任意のビューのImageIndicator Modifier、データソースのImageManager Observableオブジェクトを導入します。 iOS 13+/macos 10.15+/tvos 13+/watchos 6+およびswift 5.1をサポートします。良い試して、フィードバックを提供してください!
Photos.frameworkを使用)LPLinkView ( LinkPresentation.frameworkを使用) 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 " ) )5.0では、アニメーション画像をサポートするための新しいメカニズムを導入しました。これには、アニメーション化された画像の読み込み、レンダリング、デコード、およびカスタマイズ(上級ユーザー向け)もサポートされます。
このアニメーション画像ソリューションは、 iOS / tvOS / macOSで使用できます。 SDAnimatedImage UIImage/NSImageのサブクラスであり、 SDAnimatedImageViewはUIImageView/NSImageViewのサブクラスであり、それらを一般的なフレームワークAPIと互換性があるようにします。
SDAnimatedImageView 、馴染みのある画像読み込みカテゴリメソッドをサポートしています。これは、 UIImageView/NSImageViewのドロップイン交換などです。
UIView ( WatchKitやCALayerなど)を持っていませんか?高度な再生とレンダリングのために、 SDAnimatedPlayer the playerエンジンを使用できます。
詳細については、アニメーション画像を参照してください。
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物事をクリーンアップし、コアプロジェクトをより少ないことをさせるために、 FLAnimatedImage統合はここに属していないと判断しました。 5.0から、これは引き続き利用可能ですが、専用のRepo sdwebimageflpluginの下にあります。
プロジェクトでSDWebimageを使用する5つの方法があります。
Cocoapodsは、Objective-Cの依存マネージャーであり、プロジェクトでサードパーティライブラリを使用するプロセスを自動化および簡素化します。詳細については、開始セクションをご覧ください。
platform :ios, '8.0'
pod 'SDWebImage', '~> 5.0'
Swift Projectは以前はuse_frameworks!すべてのポッドを動的なフレームワークにして、ココアポッドを機能させる。
ただし、 CocoaPods 1.5.0+ ( Xcode 9+を使用)から始めます。これは、Objective-C && Swiftコードを静的フレームワークに組み込むことをサポートしています。 Modular Headersを使用して、sdwebimageを静的フレームワークとして使用できます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
Cocoapods 1.5.0の詳細 - Swift Staticライブラリを参照してください
そうでない場合は、 use_frameworks! SDWebimageを動的フレームワークとして使用するには:
platform :ios, '8.0'
use_frameworks!
pod 'SDWebImage'
現在利用可能な2つのサブペックがあります: CoreとMapKit (SDWebimageモジュールの一部のみをインストールできることを意味します。デフォルトでは、 Coreだけを取得します。したがって、 MapKitが必要な場合は、指定する必要があります)。
Podfileの例:
pod 'SDWebImage/MapKit'
Carthageは、SwiftおよびObjective-Cの軽量依存関係マネージャーです。ココアットチューチモジュールを活用し、ココアポッドよりも侵襲性が低くなります。
カルタゴと一緒にインストールするには、カルタゴの指示に従ってください
Carthageのユーザーは、このリポジトリを指して、sdwebimage、sdwebimagemapkit、またはその両方:生成されたフレームワークを使用できます。
Cartfileで次のエントリを作成します。Github github "SDWebImage/SDWebImage"その後、 carthage updateを実行します。これがプロジェクトでCarthageを使用した場合は、Carthageで説明されているように追加の手順を実行する必要があります。
注:現時点では、Carthageは特定のリポジトリサブコンポーネントのみを構築する方法を提供していません(またはCocoapodsのサブスペックに相当)。すべてのコンポーネントとその依存関係は、上記のコマンドで構築されます。ただし、プロジェクトに使用していないフレームワークをコピーする必要はありません。たとえば、
SDWebImageMapKitを使用していない場合は、carthage updateが完了した後、Carthageビルドディレクトリからそのフレームワークを自由に削除してください。
注:Appleには、sdwebimageに署名が含まれている必要があります。したがって、デフォルトでは、
carthage buildバイナリフレームワークはコード設計を行いません。これにより、検証エラーが発生します。 Apple Developer Program IDと、バイナリフレームワークを使用して署名することができます。
binary "https://github.com/SDWebImage/SDWebImage/raw/master/SDWebImage.json"
Swift Package Manager(SwiftPM)は、SWIFTコードの分布とCファミリーの依存関係を管理するためのツールです。 Xcode 11から、SwiftPMはXcodeとネイティブに統合されました。
sdwebimageは、バージョン5.1.0からSwiftPMをサポートしています。 SwiftPMを使用するには、Xcode 11を使用してプロジェクトを開きます。 File ] - > Swift Packages - > Add Package Dependencyをクリックし、SDWebimage RepoのURLを入力します。または、githubアカウントでXcodeをログインし、 SDWebImageを入力して検索するだけです。
パッケージを選択した後、依存関係タイプ(タグ付きバージョン、ブランチ、またはコミット)を選択できます。その後、Xcodeはあなたのためにすべてのものをセットアップします。
あなたがフレームワークの著者であり、sdwebimageを依存関係として使用する場合は、 Package.swiftファイルを更新します。
let package = Package (
// 5.1.0 ..< 6.0.0
dependencies : [
. package ( url : " https://github.com/SDWebImage/SDWebImage.git " , from : " 5.1.0 " )
] ,
// ...
)5.19.2から、SdWebimageはGitHubリリースページで標準的な公式バイナリXCFrameworkを提供します。
SDWebImage-dynamic.xcframework.zipの動的リンク用のSDWebImage-static.xcframework.zipは、static-linkedのzipをダウンロードすることを選択できます。
解凍された.xcframeworkをXcodeプロジェクトのフレームワークタブにドラッグします。
Xcode 15からAppleは、サプライチェーン攻撃を避けるために、バイナリXCFrameworkの署名を検証します。
現在、指紋は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
証明書はこちらのレポに保存されています
公開キーはこちらのレポに保管されています
詳細:XCFrameWorksの起源を確認してください
sudo xcode-select -s /path/to/Xcode.app
または
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
Wikiの詳細:手動インストールガイドをご覧ください
ライブラリを使用する必要があるソースファイルで、傘ヘッダーファイルをインポートします。
# import < SDWebImage/SDWebImage.h >また、ココアポッド( modular_headersを有効)/Carthage/SwiftPMで使用できるモジュールインポート構文を使用することもお勧めします。
@import SDWebImage;
この時点で、ワークスペースはエラーなしで構築する必要があります。問題がある場合は、問題に投稿してください。コミュニティはそれを解決するのに役立ちます。
Xcode 15から、プライバシーの詳細については、新しいPrivacyInfo.xcprivacyファイルを提供します。プライバシーマニフェストでのデータの使用の説明を参照してください
SWIFTPM/XCFRAMEWORKまたはCOCOAPODS( use_frameworksセットをtrueに設定)を介してsdwebimageを統合して、アプリをアーカイブした後にプライバシーレポートをエクスポートできます。
古いバージョンの場合、またはApp Storeのアプリプライバシーの詳細で要求されるStatic ARアーカイブを使用している場合は、SDWebimageのデータ収集プラクティスのリストを次に示します。
すでにSDWebimageに貢献しているすべての人々に感謝します。
すべてのソースコードは、MITライセンスの下でライセンスされています。
貢献のためのSDWebimageのアーキテクチャデザインについて学ぶには、SDWebimage v5.6アーキテクチャのコアをお読みください。投稿と翻訳をしてくれた@looseyiに感謝します。