Sobes.tech
Junior

Kas ir slānis (layer) iOS izstrādes kontekstā?

sobes.tech AI

Atbilde no AI

CALayer slānis — tas ir objekts, kas pārvalda vizuālo saturu (UIView). Skati izmanto slāņus, lai attēlotu savu saturu ekrānā. Slāņi neapstrādā pieskāriena notikumus, atšķirībā no skatieniem.

Galvenās slāņu funkcijas:

  • Saturu attēlošana (attēli, teksts, grafika).
  • Ģeometrijas pārvaldība (novietojums, izmērs, griešana).
  • Izskata konfigurācija (fons, robežas, ēnas, noapaļoti stūri).
  • Animāciju atbalsts (netieši un tieši).

CALayer galvenās īpašības:

  • contents: Any? - slāņa saturs, parasti CGImage
  • frame: CGRect - slāņa novietojums un izmērs attiecībā pret superlayer
  • bounds: CGRect - slāņa novietojums un izmērs tā paša koordinātu sistēmā
  • position: CGPoint - slāņa centrs attiecībā pret superlayer
  • anchorPoint: CGPoint - slāņa punkts, ap kuru notiek pārveidojumi, normalizētās koordinātās (no 0 līdz 1)
  • backgroundColor: CGColor? - slāņa fona krāsa
  • borderColor: CGColor? - robežas krāsa
  • borderWidth: CGFloat - robežas platums
  • cornerRadius: CGFloat - stūru rādiuss
  • shadowColor: CGColor? - ēnas krāsa
  • shadowOpacity: Float - ēnas caurspīdīgums (no 0 līdz 1)
  • shadowOffset: CGSize - ēnas novirze
  • shadowRadius: CGFloat - ēnas izplūšanas rādiuss
  • opacity: Float - slāņa caurspīdīgums
  • isHidden: Bool - vai slānis ir paslēpts
  • transform: CATransform3D - trīs dimensiju pārveidojums slānim

Slāņu hierarhija:

Slāņi veido hierarhiju, kas līdzīga skatījumu hierarhijai. Katram slānim var būt superlayer un sublayers masīvs.

Izmantošana:

UIView ir savs galvenais slānis (layer), ar kura palīdzību var piekļūt tā vizuālajām īpašībām un veikt animācijas. Papildu slāņus var pievienot skatiena slānim, lai radītu sarežģītākus vizuālos efektus.

Piemērs piekļuvei skatiena slānim:

// Mainīt skatiena fona krāsu caur tā slāni
myView.layer.backgroundColor = UIColor.red.cgColor

// Pievienot ēnu skatiena slānim
myView.layer.shadowColor = UIColor.black.cgColor
myView.layer.shadowOpacity = 0.5
myView.layer.shadowOffset = CGSize(width: 2, height: 2)
myView.layer.shadowRadius = 4