Skip to main content
Languageالعربية
هندسة5 دقائق قراءةأكتوبر 2026

كيف تعمل الرسوم المتحركة الربيعية في SwiftUI؟

إجابة مختصرة

في SwiftUI يمكنك إضافة زنبرك باستخدام .animation(.spring) أو withAnimation(.spring). منذ iOS 17، كانت الإعدادات الرئيسية هي المدة والارتداد، وهناك إعدادات مسبقة: .smooth (بدون ارتداد)، و.snappy (قليل)، و.bounce (المزيد). يستخدم الكود الأقدم الاستجابة والتخميد. تحافظ النوابض SwiftUI على سرعتها عندما تقاطعها حركة جديدة، مما يجعل الإيماءات تبدو طبيعية.

الوجبات الجاهزة الأساسية

  • استخدم withAnimation(.spring) لتغييرات الحالة، أو .animation(.spring, value:) في العرض
  • iOS 17+: .spring(المدة:bounce:) بالإضافة إلى الإعدادات المسبقة .smooth و.snappy و.bouncy
  • واجهة برمجة التطبيقات الأقدم: .spring(response:dampingFraction:blendDuration:)
  • Springs هو نمط الرسوم المتحركة الافتراضي في SwiftUI منذ iOS 17
  • تحافظ النوابض المتقطعة على سرعتها، لذا يتم تسليم الإيماءات بسلاسة

SwiftUI ينشط التغييرات في الحالة. عندما تتغير قيمة مثل isExpanded داخل withAnimation(.spring)، ينتقل كل عرض يعتمد عليها إلى تخطيطه الجديد باستخدام زنبرك.

في نظام التشغيل iOS 17 والإصدارات الأحدث، فإن أبسط طريقة لوصف الزنبرك هي بقيمتين: المدة، تقريبًا الوقت الذي يستغرقه الاستقرار، والارتداد، مقدار تجاوزه. يعطي الارتداد بمقدار 0 حركة سلسة بدون تجاوز؛ القيم الأعلى تضيف ترتد. توفر Apple أيضًا إعدادات مسبقة: .smooth، و.snappy، و.bouncy.

يستخدم الكود الأقدم .spring(response:dampingFraction:). الاستجابة مشابهة للمدة، وكسر التخميد 1 يعني عدم وجود ارتداد بينما تضيف القيم المنخفضة ارتدادًا. كلا الشكلين يصفان نفس الربيع الجسدي.

الميزة الكبرى للينابيع هي الانقطاع. إذا نقر المستخدم مرة أخرى أو انتهت إيماءة السحب في منتصف الرسوم المتحركة، فسيبدأ الربيع الجديد من الموضع والسرعة الحاليين، لذلك لا توجد قفزة. بالنسبة لإيماءات السحب، قم بتمرير سرعة الإيماءة عندما يحرر المستخدم، بحيث يستمر العنصر في الاتجاه الذي تم رميه فيه.

إذا كان نفس المكون يحتاج أيضًا إلى التشغيل على الويب أو Android، فإن الاحتفاظ بقيم الربيع كرموز حركة مشتركة يساعد. ExodeUI، الذي نصنعه، لديه وقت تشغيل SwiftUI، لذلك يمكن لعنصر واحد مصمم مع نوابضه أن يعمل في SwiftUI وعلى منصات أخرى.

الأسئلة المتداولة

ما هي الرسوم المتحركة الافتراضية في SwiftUI؟

منذ iOS 17، أصبحت الرسوم المتحركة الافتراضية عبارة عن زنبرك سلس.

ما هو الفرق بين .snappy و .bouncy؟

.snappy يستقر بسرعة مع تجاوز بسيط؛ .نطاط يتجاوز أكثر من ذلك. .smooth لا يوجد لديه تجاوز.

كيف يمكنني تحويل الاستجابة والكسر التخميد إلى المدة والارتداد؟

تحدد الاستجابة تقريبًا المدة. جزء التخميد 1 يرتد 0؛ كسور التخميد المنخفضة تعني المزيد من الارتداد.

كيف يمكنني إضافة السرعة من لفتة السحب؟

اقرأ السرعة عندما ينتهي السحب واستخدم زنبركًا محرفًا أو واجهات برمجة التطبيقات الزنبركية الأحدث التي تقبل السرعة الأولية.

الأدلة والأمثلة ذات الصلة

قم بضبط الزنبرك قبل كتابة التعليمات البرمجية

اسحب أشرطة التمرير وشاهد الحركة وانسخ قيم الزنبرك لـ SwiftUI وCSS والأنظمة الأساسية الأخرى.

افتح مولد الربيع
ExodeUI

EXODEUI DESKTOP

A little space for good ideas.

Choose your platform to get the official ExodeUI installer.

Looking for Intel Mac or other builds? Explore the web studio or check all download options.

Prefer the browser? Try for free in your browser →