0Pricing
Swift Academy · درس

أساسيات CALayer

تعامَل مع الطبقات وخصائصها وتسلسلها الهرمي.

أساسيات CALayer درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 4 دروس في المجموع.

ما هي CALayer؟

تُعد CALayer الطبقة الداعمة لكل ما ترونه في UIKit. ويُرسم كل UIView بواسطة طبقة تحتفظ بمحتواه المرئي على هيئة نسيج في GPU.

ويتيح التعامل المباشر مع الطبقات الاستفادة من الرسومات والتحريكات المسرّعة بواسطة العتاد.

import UIKit
let layer = CALayer()

الطبقات خلف العروض

يملك كل عرض خاصية layer. وغالبًا ما يكون ضبط خصائص الطبقة أبسط وأقل تكلفة من الرسم المخصص.

view.layer.cornerRadius = 12
view.layer.masksToBounds = true

الهندسة: frame, bounds, position

تملك الطبقة bounds، وهي نظام الإحداثيات الخاص بها، وposition، وهو موضع مرساة الطبقة في العرض الأب، إضافةً إلى frame المشتق. ويؤدي تعديل أي منها إلى تحديث الباقي.

let layer = CALayer()
layer.bounds = CGRect(x: 0, y: 0, width: 100, height: 100)
layer.position = CGPoint(x: 150, y: 150)

نقطة الارتكاز

تحدد anchorPoint، وقيمتها الافتراضية 0.5, 0.5 أي المركز، أصل الطبقة المستخدم في تحديد الموضع والتحويلات. وتدور التحويرات والتكبيرات حولها.

layer.anchorPoint = CGPoint(x: 0, y: 0) // top-left pivot

الخصائص المرئية

تتيح الطبقات ضبط الأنماط المرئية مباشرةً: backgroundColor، وهي CGColor، وcornerRadius، وborderWidth، وborderColor، وopacity.

layer.backgroundColor = UIColor.systemBlue.cgColor
layer.cornerRadius = 8
layer.borderWidth = 2
layer.borderColor = UIColor.white.cgColor

الظلال

ترسم الطبقات الظلال باستخدام shadowColor وshadowOpacity وshadowOffset وshadowRadius. اضبطوا shadowPath لتحسين الأداء.

layer.shadowColor = UIColor.black.cgColor
layer.shadowOpacity = 0.3
layer.shadowOffset = CGSize(width: 0, height: 4)
layer.shadowRadius = 6

الطبقات الفرعية

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

let parent = CALayer()
let child = CALayer()
child.frame = CGRect(x: 10, y: 10, width: 40, height: 40)
parent.addSublayer(child)

أنواع الطبقات المتخصصة

توفّر UIKit فئات فرعية للطبقات: CAShapeLayer للمسارات المتجهية، وCAGradientLayer للتدرجات، وCATextLayer للنص، وCAReplicatorLayer للعناصر الابنة المكررة.

let shape = CAShapeLayer()
shape.path = UIBezierPath(ovalIn: CGRect(x: 0, y: 0, width: 50, height: 50)).cgPath
shape.fillColor = UIColor.systemRed.cgColor

طبقات التدرج

تعرض CAGradientLayer مزائج لونية سلسة تحددها colors وlocations وstartPoint وendPoint.

let gradient = CAGradientLayer()
gradient.colors = [UIColor.systemBlue.cgColor, UIColor.systemPurple.cgColor]
gradient.startPoint = CGPoint(x: 0, y: 0)
gradient.endPoint = CGPoint(x: 1, y: 1)

contentsScale والوضوح

اضبطوا contentsScale على مقياس الشاشة، حتى يكون المحتوى الذي ترسمه الطبقة واضحًا على شاشات Retina. ويؤدي نسيان ذلك إلى ظهور النصوص والأشكال ضبابية.

layer.contentsScale = UIScreen.main.scale

الطبقات خفيفة الوزن

لا تتعامل الطبقات مع أحداث اللمس أو Auto Layout؛ فهي كائنات مرئية بحتة. وهذا يجعلها أقل تكلفة من العروض عند استخدامها للمحتوى الزخرفي أو المتحرك.

تحقق سريع: CALayer

اختبروا فهمكم لأساسيات CALayer.

مراجعة: أساسيات CALayer

تدعم CALayer كل عرض من عروض UIKit، وتوفر عناصر مرئية مسرّعة بواسطة GPU، تشمل هندسة bounds/position/anchorPoint، والتنسيق مثل نصف قطر الزوايا والحدود والظلال، وشجرة من الطبقات الفرعية.

تتولى الفئات الفرعية المتخصصة الأشكال والتدرجات والنص والتكرار. اضبطوا contentsScale للحصول على وضوح حاد، وتذكروا أن الطبقات كائنات مرئية خفيفة الوزن لا تتضمن دعمًا للمس أو Auto Layout. وتمهّد هذه الأساسيات للتحريكات القادمة.

الأسئلة الشائعة

هل درس «أساسيات CALayer» مجاني؟

نعم — نص درس «أساسيات CALayer» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 4 دروس في المجموع.

ماذا ستتعلم في «أساسيات CALayer»؟

تعامَل مع الطبقات وخصائصها وتسلسلها الهرمي. تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟

لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «أساسيات CALayer»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟

نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. أساسيات CALayer
  2. الرسوم المتحركة الضمنية والصريحة
  3. التحويلات والتأثيرات ثلاثية الأبعاد
  4. الرسم المخصص باستخدام Core Graphics
← العودة إلى Swift Academy