توفر هذه المكتبة تنزيل صور غير متزامن مع دعم ذاكرة التخزين المؤقت. للراحة ، أضفنا فئات لعناصر واجهة المستخدم مثل UIImageView و UIButton و MKAnnotationView .
ملاحظة:
SDهي بادئة للتصميم البسيط (وهو اسم الفريق في شركة Motion Daily من المؤلف أوليفييه Poitrey)
UIImageView ، UIButton ، MKAnnotationView إضافة صورة ويب وإدارة ذاكرة التخزين المؤقت من 5.19+ ، يدعم SDWebImage VisionOs على جميع مديري الحزم (تشمل Cocoapods/Carthage/SPM). قم بترقية الأدوات ذات الصلة إذا كنت تواجه مشكلات.
مقابل 5.18+ ، يمكن تجميع sdwebimage لمنصة VisionOS. ومع ذلك ، لا يزال في الإصدار التجريبي وقد يحتوي على مشكلات مختلفة عن دعم iOS Uikit المستقر. مرحبًا بك في محاولة الإبلاغ عن مشكلة.
للبناء على VisionOS ، ندعم حاليًا فقط تكامل Xcode القياسي.
انظر Installation with Swift Package Manager Manual Installation Guide أدناه.
ملاحظة: للمستخدم الجديد
sdwebimage استخدم نظام البرنامج المساعد المبرمج لدعم تنسيق الصور المدمج والخارجي من Apple. بالنسبة للصورة الثابتة ، نستخدم دائمًا Apple المدمج في الاحتياط ، ولكن ليس للصور المتحركة. حاليًا (تم تحديثه إلى الإصدار 5.19.x) نقوم بتسجيل تنسيق الرسوم المتحركة التقليدي فقط مثل GIF/APNG افتراضيًا ، دون التنسيق الحديث مثل AWEBP/Heics/AVIF ، حتى في أحدث البرامج الثابتة.
إذا كنت تريد دعم تنسيق الصور المتحرك هذا ، فما عليك سوى التسجيل بنفسك برمز خط واحد ، راجع المزيد في WebP Coder و Heic Coder
في المستقبل ، سنغير هذا السلوك من خلال تسجيل جميع تنسيق الصور المتحركة المدمج في Apple ، لتسهيل دمج المستخدم الجديد.
من أجل الحفاظ على تركيز SDWebImage وتقتصر على الميزات الأساسية ، ولكن أيضًا يسمحون بالسلوكيات المخصصة والسلوكيات المخصصة ، أثناء إعادة إعادة النشر 5.0 ركزنا على تعديل المكتبة. على هذا النحو ، قمنا بنقل/أنشأنا وحدات جديدة إلى sdwebimage org.
Swiftui هو إطار واجهة المستخدم المبتكرة المكتوبة في Swift لإنشاء واجهات المستخدم عبر جميع منصات Apple.
نحن ندعم Swiftui من خلال بناء إطار عمل جديد يسمى SDWebImagesWiftui ، والذي تم تصميمه على رأس وظائف Sdwebimage الأساسية (التخزين المؤقت والتحميل والرسوم المتحركة).
يقدم Framework الجديد اثنين من البنية عرض WebImage و AnimatedImage لعالم Swiftui ، معدل ImageIndicator لأي عرض ، كائن قابل للملاحظة ImageManager لمصدر البيانات. يدعم 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 ، لجعلها متوافقة مع واجهات برمجة تطبيقات الأطر الشائعة.
يدعم SDAnimatedImageView أساليب فئة تحميل الصور المألوفة ، ويعمل مثل استبدال Drop-in لـ UIImageView/NSImageView .
ليس لديك UIView (مثل WatchKit أو CALayer )؟ لا يزال بإمكانك استخدام SDAnimatedPlayer The Player Engine للتشغيل المتقدم وتقديمه.
انظر الصورة المتحركة لمزيد من المعلومات التفصيلية.
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 ، سيظل هذا متاحًا ، ولكن بموجب عملية إعادة تخصيص مخصصة sdwebimageflplugin.
هناك 5 طرق لاستخدام sdwebimage في مشروعك:
CocoApods هو مدير التبعية لـ Objective-C ، والذي يتم أتمتة عملية استخدام المكتبات الطرف الثالثة في مشاريعك وتبسيطها. انظر قسم Get Seghing لمزيد من التفاصيل.
platform :ios, '8.0'
pod 'SDWebImage', '~> 5.0'
كان على المشروع السريع في السابق استخدام use_frameworks! لجعل جميع القرون في إطار ديناميكي للسماح لكوكوبودز العمل.
ومع ذلك ، بدءًا من CocoaPods 1.5.0+ (مع Xcode 9+ ) ، والذي يدعم بناء كل من كود Objective-C && Swift في إطار ثابت. يمكنك استخدام الرؤوس المعيارية لاستخدام 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 - المكتبات الثابتة السريعة
إذا لم يكن الأمر كذلك ، فلا تزال بحاجة إلى إضافة use_frameworks! لاستخدام sdwebimage كإطار ديناميكي:
platform :ios, '8.0'
use_frameworks!
pod 'SDWebImage'
هناك 2 subspecs متاحين الآن: Core و MapKit (وهذا يعني أنه يمكنك فقط تثبيت بعض وحدات sdwebimage. بشكل افتراضي ، تحصل على Core فقط ، لذلك إذا كنت بحاجة إلى MapKit ، فأنت بحاجة إلى تحديدها).
مثال podfile:
pod 'SDWebImage/MapKit'
Carthage هو مدير التبعية خفيفة الوزن لـ Swift و Diseive-C. إنه يعزز وحدات Cocoatouch وهو أقل غزوًا من Cocoapods.
للتثبيت مع قرطاج ، اتبع التعليمات على قرطاج
يمكن لمستخدمي Carthage الإشارة إلى هذا المستودع واستخدام أي إطار تم إنشاؤه يريدون: sdwebimage ، sdwebimagemapkit أو كليهما.
قم بإجراء الإدخال التالي في Cartfile الخاص بك: github "SDWebImage/SDWebImage" ثم قم بتشغيل carthage update إذا كانت هذه هي المرة الأولى التي تستخدم فيها قرطاج في المشروع ، ستحتاج إلى المرور ببعض الخطوات الإضافية كما هو موضح في قرطاج.
ملاحظة: في هذا الوقت ، لا يوفر قرطاج وسيلة لبناء فرعية محددة فقط للمستودع (أو ما يعادلها من Subspecs's Cocoapods). سيتم بناء جميع المكونات وتبعياتها مع الأمر أعلاه. ومع ذلك ، لا تحتاج إلى نسخ الأطر التي لا تستخدمها في مشروعك. على سبيل المثال ، إذا كنت لا تستخدم
SDWebImageMapKit، فلا تتردد في حذف هذا الإطار من دليل بناء carthage بعد اكتمالcarthage update.
ملاحظة: تتطلب Apple sdwebimage توقيعات. لذلك ، بشكل افتراضي ، لا يقوم الإطار الثنائي
carthage buildبتصميم رمز ، وسيؤدي ذلك إلى خطأ في التحقق من الصحة. يمكنك توقيع نفسك مع هوية برنامج Apple Developer ، أو استخدام الإطار الثنائي:
binary "https://github.com/SDWebImage/SDWebImage/raw/master/SDWebImage.json"
Swift Package Manager (SWIFTPM) هي أداة لإدارة توزيع الكود السريع وكذلك التبعية للعائلة C. من Xcode 11 ، تم دمج SwiftPM أصلاً مع Xcode.
Sdwebimage دعم swiftpm من الإصدار 5.1.0. لاستخدام SwiftPM ، يجب عليك استخدام Xcode 11 لفتح مشروعك. انقر فوق File -> Swift Packages -> Add Package Dependency ، أدخل عنوان URL الخاص بـ SDWebimage Repo. أو يمكنك تسجيل الدخول إلى Xcode باستخدام حساب GitHub الخاص بك واكتب 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 الرسمية الكنسية xcframework على صفحات إطلاق Github.
يمكنك اختيار تنزيل SDWebImage-dynamic.xcframework.zip للمرتبطة الديناميكية ، أو SDWebImage-static.xcframework.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 > وتوصي أيضًا باستخدام بناء جملة استيراد الوحدة النمطية ، المتاحة لـ Cocoapods (تمكين modular_headers )/carthage/swiftpm.
@import SDWebImage;
في هذه المرحلة ، يجب أن تبني مساحة العمل الخاصة بك دون خطأ. إذا كنت تواجه مشكلة ، فقم بالنشر إلى المشكلة ويمكن للمجتمع مساعدتك في حلها.
من XCode 15 ، نقدم ملف PrivacyInfo.xcprivacy الجديد للحصول على تفاصيل الخصوصية ، راجع وصف استخدام البيانات في سمات الخصوصية
يمكنك تصدير تقرير الخصوصية بعد أرشيف تطبيقك عن طريق دمج sdwebimage عبر swiftpm/xcframework أو cocoapods ( use_frameworks .
بالنسبة للإصدار القديم أو إذا كنت تستخدم أرشيف AR الثابت ، كما هو مطلوب من خلال تفاصيل خصوصية التطبيق على متجر التطبيقات ، إليك قائمة SDWebImage بممارسات جمع البيانات.
شكرا لجميع الأشخاص الذين ساهموا بالفعل في Sdwebimage.
يتم ترخيص جميع رمز المصدر بموجب ترخيص MIT.
للتعرف على تصميم الهندسة المعمارية الخاصة بـ SDWebImage للمساهمة ، اقرأ جوهر Sdwebimage v5.6. شكرا @ @rouesyi على المنشور والترجمة.