Iphone için programlamayı öğrenirken deneyimlerimi bu blogda paylaşacağım.

Thursday, 15 October 2009

View Hiyerarşisi

IPhone için yazılan bir uygulama kullanıcı arayüzünü UIWindow adlı class ' ın içinde gösterir. IPhone uygulamaları tek Window ' dan oluşur. Bu Window ' un içinde çizilen arayüz bileşenleri yani View bileşenleri değişir.  İster kullanıcıdan input almak ister bilgi göstermek amaçlı olsun tüm bileşenler UIView class ' ından extend eder.  UIWindow ' da aslında bir UIView bileşenidir.

UIView hiyerarşini aşağıdaki diyagram gösteriyor. Farklı amaçlar için arayüz bileşenleri mevcut. Programcı bunları özelleştirebileceği gibi UIView ' dan extend edip tamamen farklı bir bileşende yazabilir.



UIView class ' ları alt view olarak başka bir UIView class ' ını barındırabilir. Tüm window çizilirken parent UIView dan başlayarak tüm hiyerarşi ekrana çizdirilir. Her bileşenin drawRect metodu çağrılır. Eğer alt view ' ları organize etmek istiyorsa (requireslayout ) ile layoutSubviews adlı metodun yazılması gerekir.

IPhone OS bir optimizasyon olarak her view ' un görünüşünü bitmap olarak cache ' ler. Bu sayede eğer görünümde değişiklik yoksa tekrar çizim yaptırılmadan cache lenmiş görüntü kullanılır. Avantaj hız, dezavantaj ise memory kullanımının artışıdır.  Bu nedenle sürekli yeni view bileşenleri yaratan uygulamalar problemlerle karşılaşabilir.

No comments:

Post a Comment