0Pricing
Swift Academy · Lekcja

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 = true

Geometria: 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 pivot

Wł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.cgColor

Cienie

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 = 6

Warstwy 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.cgColor

Warstwy 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.scale

Warstwy 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

  1. Podstawy CALayer
  2. Animacje niejawne i jawne
  3. Przekształcenia i efekty 3D
  4. Niestandardowe rysowanie za pomocą Core Graphics
← Powrót do Swift Academy