Sobes.tech
Junior

Kas yra sluoksnis (layer) iOS kūrimo kontekste?

sobes.tech AI

Atsakymas iš AI

CALayer sluoksnis — tai objektas, kuris valdo vaizdinį turinį (UIView). Vaizdai naudoja sluoksnius savo turiniui atvaizduoti ekrane. Sluoksniai neapdoroja lietimo įvykių, skirtingai nuo vaizdų.

Pagrindinės sluoksnių funkcijos:

  • Turinys rodymas (vaizdai, tekstas, grafika).
  • Geometrijos valdymas (patalpų, dydžio, pasukimo).
  • Išvaizdos nustatymas (fonas, kraštinės, šešėliai, apvalinti kampai).
  • Animacijų palaikymas (ne tiesioginis ir tiesioginis).

CALayer pagrindinės savybės:

  • contents: Any? - sluoksnio turinys, dažniausiai CGImage
  • frame: CGRect - sluoksnio padėtis ir dydis santykyje su superlayer
  • bounds: CGRect - sluoksnio padėtis ir dydis jo pačio koordinačių sistemoje
  • position: CGPoint - sluoksnio centras santykyje su superlayer
  • anchorPoint: CGPoint - sluoksnio taškas, aplink kurį vyksta transformacijos, normalizuotose koordinatėse (nuo 0 iki 1)
  • backgroundColor: CGColor? - sluoksnio fono spalva
  • borderColor: CGColor? - kraštinės spalva
  • borderWidth: CGFloat - kraštinės plotis
  • cornerRadius: CGFloat - apvalių kampų spindulys
  • shadowColor: CGColor? - šešėlio spalva
  • shadowOpacity: Float - šešėlio nepermatomumas (nuo 0 iki 1)
  • shadowOffset: CGSize - šešėlio poslinkis
  • shadowRadius: CGFloat - šešėlio išsklaidymo spindulys
  • opacity: Float - sluoksnio nepermatomumas
  • isHidden: Bool - ar sluoksnis paslėptas
  • transform: CATransform3D - trimačio sluoksnio transformacija

Sluoksnių hierarchija:

Sluoksniai sudaro hierarchiją, panašią į vaizdų hierarchiją. Kiekvienas sluoksnis gali turėti superlayer ir sublayers masyvą.

Naudojimas:

UIView turi savo pagrindinį sluoksnį (layer), per kurį galima pasiekti jo vizualines savybes ir atlikti animacijas. Papildomi sluoksniai gali būti pridedami prie vaizdo sluoksnio, kad būtų galima sukurti sudėtingesnius vizualinius efektus.

Pavyzdys prieigos prie vaizdo sluoksnio:

// Keisti vaizdo fono spalvą per jo sluoksnį
myView.layer.backgroundColor = UIColor.red.cgColor

// Pridėti šešėlį prie vaizdo sluoksnio
myView.layer.shadowColor = UIColor.black.cgColor
myView.layer.shadowOpacity = 0.5
myView.layer.shadowOffset = CGSize(width: 2, height: 2)
myView.layer.shadowRadius = 4