Sobes.tech
Junior

Mis on kiht (layer) iOS arenduse kontekstis?

sobes.tech AI

Vastus AI-lt

CALayer kiht on objekt, mis juhib visuaalset sisu (UIView). Vaateid kasutavad kihte oma sisu ekraanile kuvamiseks. Kihid ei töödelda puutetõrke sündmusi, erinevalt vaadetest.

Kihide peamised funktsioonid:

  • Sisu kuvamine (pildid, tekst, graafika).
  • Geomeetria juhtimine (asukoht, suurus, pööramine).
  • Välise välimuse seadistamine (taust, ääred, varjud, ümarad nurgad).
  • Animatsioonide tugi (kaudne ja otsene).

CALayer peamised omadused:

  • contents: Any? - kihisisu, tavaliselt CGImage
  • frame: CGRect - kihise asukoht ja suurus seoses tema superlayer-iga
  • bounds: CGRect - kihise asukoht ja suurus tema enda koordinaatsüsteemis
  • position: CGPoint - kihise keskpunkt seoses tema superlayer-iga
  • anchorPoint: CGPoint - kihise punkt, ümber mille toimuvad transformatsioonid, normaliseeritud koordinaatides (0 kuni 1)
  • backgroundColor: CGColor? - kihise taustavärv
  • borderColor: CGColor? - kihise äärise värv
  • borderWidth: CGFloat - äärise laius
  • cornerRadius: CGFloat - ümarate nurkade raadius
  • shadowColor: CGColor? - varju värv
  • shadowOpacity: Float - varju läbipaistvus (0 kuni 1)
  • shadowOffset: CGSize - varju nihke suurus
  • shadowRadius: CGFloat - varju hägustamise raadius
  • opacity: Float - kihise läbipaistvus
  • isHidden: Bool - kas kiht on peidetud
  • transform: CATransform3D - kolmemõõtmeline transformatsioon kihile

Kihide hierarhia:

Kihid moodustavad hierarhia, mis sarnaneb vaadete hierarhiaga. Igal kihil võib olla superlayer ja sublayers massiiv.

Kasutamine:

UIView-del on oma põhikiht (layer), mille kaudu saab ligi nende visuaalsetele omadustele ja teha animatsioone. Täiendavaid kihte saab lisada vaate kihile, et luua keerukamaid visuaalseid efekte.

Näide kihile ligipääsust:

// Vaate taustavärvi muutmine selle kihiga
myView.layer.backgroundColor = UIColor.red.cgColor

// Varju lisamine vaate kihile
myView.layer.shadowColor = UIColor.black.cgColor
myView.layer.shadowOpacity = 0.5
myView.layer.shadowOffset = CGSize(width: 2, height: 2)
myView.layer.shadowRadius = 4