Sobes.tech
Middle

Miért szükséges egy UIView, ha már van CALayer?

sobes.tech MI

Válasz az MI-től

A UIView egy magas szintű absztrakció, amely a következőket nyújtja:

  • Érintéses és gesztus események kezelése.
  • Az alnézetek (subviews) fa kezelését.
  • Automatikus elrendezés támogatása (Auto Layout és régi Autoresizing Masks).
  • Speciális viselkedés alosztályokon keresztül (pl. UIButton, UILabel, UIImageView).
  • Beépítés a UIKit-ba és a UIViewController életciklusába.
  • Egy kényelmes mechanizmus a tartalom érvénytelenítésére és újrarajzolására (setNeedsDisplay()).

A CALayer a Core Animation alacsony szintű összetevője, amely a vizuális megjelenítésért felelős:

  • Tartalmaz egy raszteres képet (bitmap) vagy grafikus primitíveket.
  • A pozícionálásért, transzformációkért, árnyékokért, határokért stb. felelős.
  • Az animációk alapja.
  • Nem kezeli közvetlenül az érintéses eseményeket.

A UIView egy vagy több CALayer-t tartalmaz a tartalom megjelenítéséhez és a felhasználóval való interakció kezeléséhez a hierarchiában. A CALayer, mivel primitívebb, nem nyújt ugyanazt a funkcionalitási szintet a felhasználói felületek építéséhez a UIKit-ban.