Podstawy CALayer
Praca z warstwami, ich właściwościami i hierarchią.
Podstawy CALayer to bezpłatna lekcja Swift Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Swift Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Swift Academy zawiera 4 lekcji w sumie.
Czym jest CALayer?
CALayer jest warstwą zaplecza dla wszystkiego, co widać w UIKit. Każdy UIView jest rysowany przez warstwę, która przechowuje jego zawartość wizualną jako teksturę w GPU.
Bezpośrednia praca z warstwami zapewnia dostęp do akcelerowanej sprzętowo grafiki i animacji.
import UIKit
let layer = CALayer()Warstwy ukryte za widokami
Każdy widok ma właściwość layer. Ustawianie właściwości warstwy jest często prostsze i tańsze niż własne rysowanie.
view.layer.cornerRadius = 12
view.layer.masksToBounds = trueGeometria: frame, bounds, position
Warstwa ma właściwość bounds (jej własny układ współrzędnych), position (położenie jej punktu zakotwiczenia w elemencie nadrzędnym) oraz wyliczaną właściwość frame. Zmiana dowolnej z nich aktualizuje pozostałe.
let layer = CALayer()
layer.bounds = CGRect(x: 0, y: 0, width: 100, height: 100)
layer.position = CGPoint(x: 150, y: 150)Punkt zakotwiczenia
anchorPoint (domyślnie 0.5, 0.5 = środek) określa początek układu warstwy na potrzeby pozycjonowania i transformacji. Obrót i skalowanie odbywają się wokół tego punktu.
layer.anchorPoint = CGPoint(x: 0, y: 0) // top-left pivotWłaściwości wizualne
Warstwy udostępniają bezpośrednio właściwości stylu wizualnego: backgroundColor (typu CGColor), cornerRadius, borderWidth, borderColor i opacity.
layer.backgroundColor = UIColor.systemBlue.cgColor
layer.cornerRadius = 8
layer.borderWidth = 2
layer.borderColor = UIColor.white.cgColorCienie
Warstwy rysują cienie za pomocą właściwości shadowColor, shadowOpacity, shadowOffset i shadowRadius. Dla lepszej wydajności należy ustawić shadowPath.
layer.shadowColor = UIColor.black.cgColor
layer.shadowOpacity = 0.3
layer.shadowOffset = CGSize(width: 0, height: 4)
layer.shadowRadius = 6Warstwy podrzędne
Warstwy tworzą drzewo. Elementy podrzędne należy dodawać za pomocą addSublayer; są one pozycjonowane w układzie współrzędnych elementu nadrzędnego.
let parent = CALayer()
let child = CALayer()
child.frame = CGRect(x: 10, y: 10, width: 40, height: 40)
parent.addSublayer(child)Wyspecjalizowane typy warstw
UIKit dostarcza podklasy warstw: CAShapeLayer (ścieżki wektorowe), CAGradientLayer (gradienty), CATextLayer (tekst) i CAReplicatorLayer (zduplikowane elementy podrzędne).
let shape = CAShapeLayer()
shape.path = UIBezierPath(ovalIn: CGRect(x: 0, y: 0, width: 50, height: 50)).cgPath
shape.fillColor = UIColor.systemRed.cgColorWarstwy gradientu
CAGradientLayer renderuje płynne przejścia kolorów określone przez właściwości colors, locations, startPoint i 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 i ostrość
Należy ustawić contentsScale zgodnie ze skalą ekranu, aby zawartość rysowana przez warstwę była ostra na ekranach Retina. Pominięcie tej właściwości powoduje rozmycie tekstu i kształtów.
layer.contentsScale = UIScreen.main.scaleWarstwy są lekkie
Warstwy nie obsługują zdarzeń dotykowych ani Auto Layout; są wyłącznie obiektami wizualnymi. Dzięki temu są tańsze niż widoki w przypadku elementów dekoracyjnych lub animowanych.
Szybki test: CALayer
Proszę sprawdzić swoją wiedzę na temat podstaw CALayer.
Podsumowanie: podstawy CALayer
CALayer stanowi zaplecze każdego widoku UIKit i udostępnia akcelerowane przez GPU elementy wizualne: geometrię bounds/position/anchorPoint, stylizację (promień zaokrąglenia narożników, obramowania i cienie) oraz drzewo warstw podrzędnych.
Wyspecjalizowane podklasy obsługują kształty, gradienty, tekst i powielanie. Należy ustawić contentsScale, aby zachować ostrość, i pamiętać, że warstwy są lekkimi obiektami wizualnymi, które nie obsługują dotyku ani Auto Layout. Ta podstawa umożliwia animacje omawiane w dalszej części.
Często zadawane pytania
Czy lekcja „Podstawy CALayer” jest bezpłatna?
Tak — pełny tekst „Podstawy CALayer” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Swift Academy, przejdź na CoddyKit PRO. Kurs Swift Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Podstawy CALayer”?
Praca z warstwami, ich właściwościami i hierarchią. Ćwiczysz Swift Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Swift Academy?
Nie wymagamy żadnego doświadczenia. Swift Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Podstawy CALayer”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Swift Academy?
Tak. Każda lekcja Swift Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Podstawy CALayer
- Animacje niejawne i jawne
- Przekształcenia i efekty 3D
- Niestandardowe rysowanie za pomocą Core Graphics