Junior
Šta je sloj (layer) u kontekstu razvoja iOS?
sobes.tech АИ
Одговор од АИ
(CALayer) je objekat koji upravlja vizuelnim sadržajem (UIView). Pogledi koriste slojeve za prikaz svog sadržaja na ekranu. Slojevi ne obrađuju događaje dodira, za razliku od pogleda.
Glavne funkcije slojeva:
- Prikaz sadržaja (slika, tekst, grafika).
- Kontrola geometrije (pozicija, veličina, rotacija).
- Podešavanje izgleda (pozadina, ivice, senke, zaobljeni uglovi).
- Podrška za animacije (implicitne i eksplicitne).
Glavne osobine CALayer:
contents:Any?- Sadržaj sloja, običnoCGImage.frame:CGRect- Pozicija i veličina sloja u odnosu na njegovsuperlayer.bounds:CGRect- Pozicija i veličina sloja u njegovom sopstvenom koordinatnom sistemu.position:CGPoint- Centar sloja u odnosu na njegovsuperlayer.anchorPoint:CGPoint- Tačka sloja oko koje se dešavaju transformacije, u normalizovanim koordinatama (od 0 do 1).backgroundColor:CGColor?- Boja pozadine sloja.borderColor:CGColor?- Boja ivice sloja.borderWidth:CGFloat- Širina ivice sloja.cornerRadius:CGFloat- Rado za zaobljene uglove.shadowColor:CGColor?- Boja senke.shadowOpacity:Float- Prozirnost senke (od 0 do 1).shadowOffset:CGSize- Pomak senke.shadowRadius:CGFloat- Rado zamućenja senke.opacity:Float- Prozirnost sloja.isHidden:Bool- Određuje da li je sloj skriven.transform:CATransform3D- Trodimenzionalna transformacija sloja.
Hijerarhija slojeva:
Slojevi formiraju hijerarhiju sličnu hijerarhiji pogleda. Svaki sloj može imati superlayer i niz sublayers.
Upotreba:
UIView-ovi imaju svoj glavni sloj (layer), preko kojeg mogu pristupiti njegovim vizuelnim svojstvima i izvršiti animacije. Mogu se dodavati dodatni slojevi sloju pogleda za kreiranje složenijih vizuelnih efekata.
Primer pristupa sloju pogleda:
// Promena boje pozadine pogleda preko njegovog sloja
myView.layer.backgroundColor = UIColor.red.cgColor
// Dodavanje senke sloju pogleda
myView.layer.shadowColor = UIColor.black.cgColor
myView.layer.shadowOpacity = 0.5
myView.layer.shadowOffset = CGSize(width: 2, height: 2)
myView.layer.shadowRadius = 4