Sobes.tech
Middle

Prečo je potrebný UIView, ak už máme CALayer?

sobes.tech AI

Odpoveď od AI

UIView je vysokorozsahová abstrakcia, ktorá poskytuje:

  • Spracovanie udalostí dotyku a gest.
  • Správu stromu podvizuálov (subviews).
  • Podporu pre auto layout (Auto Layout a staré masky na zmenu veľkosti).
  • Špecializované správanie cez podtriedy (napríklad UIButton, UILabel, UIImageView).
  • Integráciu s UIKit a životný cyklus UIViewController.
  • Pohodlný mechanizmus na neplatnosť a prekreslenie obsahu (setNeedsDisplay()).

CALayer je nízkoúrovňová zložka Core Animation, ktorá je zodpovedná za vizuálnu reprezentáciu:

  • Obsahuje rastrový obrázok (bitmapu) alebo grafické primitíva na zobrazenie.
  • Je zodpovedná za pozicionovanie, transformácie, tiene, hranice atď.
  • Slúži ako základ pre animácie.
  • Nespracováva priamo udalosti dotyku.

UIView obsahuje jednu alebo viac CALayer na zobrazenie svojho obsahu a správu interakcie s používateľom a ďalšími pohľadmi v hierarchii. CALayer, ako primitívnejšia, neposkytuje rovnakú úroveň funkčnosti pre tvorbu používateľských rozhraní v UIKit.