Sobes.tech
Junior

iOS geliştirme bağlamında katman (layer) nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

(CALayer) nesnesi, (UIView) görünümünün görsel içeriğini kontrol eden bir nesnedir. Görünümler, ekran üzerinde içeriklerini çizmek için katmanlar kullanır. Katmanlar, dokunma olaylarını işlemez, buna karşılık görünümler.

Katmanların temel fonksiyonları:

  • İçeriğin gösterimi (resimler, metin, grafikler).
  • Geometriyi kontrol etme (konum, boyut, döndürme).
  • Görünümü yapılandırma (arka plan, kenarlıklar, gölgeler, yuvarlatılmış köşeler).
  • Animasyon desteği (örtülü ve açık).

CALayer'ın temel özellikleri:

  • contents: Any? - Katmanın içeriği, genellikle CGImage.
  • frame: CGRect - Katmanın superlayer'ına göre konumu ve boyutu.
  • bounds: CGRect - Katmanın kendi koordinat sistemindeki konumu ve boyutu.
  • position: CGPoint - Katmanın superlayer'ına göre merkezi.
  • anchorPoint: CGPoint - Dönüşümlerin gerçekleştiği nokta, normalize edilmiş koordinatlarda (0 ile 1 arasında).
  • backgroundColor: CGColor? - Katmanın arka plan rengi.
  • borderColor: CGColor? - Katmanın kenarlık rengi.
  • borderWidth: CGFloat - Kenarlık genişliği.
  • cornerRadius: CGFloat - Yuvarlatılmış köşe yarıçapı.
  • shadowColor: CGColor? - Gölge rengi.
  • shadowOpacity: Float - Gölgenin opaklığı (0 ile 1 arasında).
  • shadowOffset: CGSize - Gölgenin kayması.
  • shadowRadius: CGFloat - Gölgenin bulanıklık yarıçapı.
  • opacity: Float - Katmanın saydamlığı.
  • isHidden: Bool - Katmanın gizli olup olmadığını belirler.
  • transform: CATransform3D - Katmanın üç boyutlu dönüşümü.

Katmanların hiyerarşisi:

Katmanlar, görünümlerle benzer bir hiyerarşi oluşturur. Her katmanın superlayer ve sublayers dizisi olabilir.

Kullanım:

Görünümler (UIView) ana katmanlarına (layer) sahiptir ve bu katman aracılığıyla görsel özelliklere erişebilir ve animasyonlar yapabilir. Görünüme ek katmanlar eklenerek daha karmaşık görsel efektler oluşturulabilir.

Görünüm katmanına erişim örneği:

// Görünümün arka plan rengini katmanı aracılığıyla değiştirme
myView.layer.backgroundColor = UIColor.red.cgColor

// Görünüm katmanına gölge ekleme
myView.layer.shadowColor = UIColor.black.cgColor
myView.layer.shadowOpacity = 0.5
myView.layer.shadowOffset = CGSize(width: 2, height: 2)
myView.layer.shadowRadius = 4