UIWindow Ve UIView Kardeşler

Window sadece bir çerçeve, view ise görünür bir resim.

Merhaba bu konu başlığı bir seri olarak yayınlanacak. Amaç Nib ve Storyboard kullanmadan uygulama arayüzünü programatik olarak nasıl oluşturulabildiğini göstermek ve anlamanıza yardımcı olmak. Bu ders içeriğinde AutoLayout tekniklerinide görmüş olacaksınız.

İlk olarak UIWindow sınıfını inceleyelim ;

UIWindow içerisinde uygulamamızda ihtiyaç duyup göstermek istediğimiz görünebilir herşeyi barındıran bir konteyner olarak düşünülebilir. 
 Bir resim tablosu düşünün siyah bir zemine konmuş ve tablonun sadece çerçevesi var içerisinde henüz hiçbir resim yerleştirilmemiş muhtemelen hayalinizdeki görüntü şu şekilde olacaktır.

Bu benzetmeyle UIWindow sınıfının ne olduğu biraz daha net anlaşılmıştır. Apple’ın View Programming Guide for iOS dökümanında da açıklaması vardır ; ( UIWindow sınıfı için )

Windows do not have any visible content themselves but provide a basic container for your application’s views.

UIWindow sınıfı genellikle uygulamalarda 1 adettir extrem durumlarda bu adet çoğalabilir. Mesela iPad’inizi yada iPhone’unuzu harici bir ekrana bağlayıp görüntü aldığınızda bu adet çoğalmaktadır.

Window her yeni oluşturulan projede AppDelegate sınıfının içinde bulunur, aşağıda gördüğünüz gibi.

Yukarıda gördüğünüz gibi bir tanımlama sistem tarafından yapılıyor ve bu UIWindow sınıfından bir örnek değil sadece tip tanımı bizim window nesnesini kullanabilmemiz için UIWindow sınıfının başlatıcısıyla bu örnek tipi yapılandırmalıyız.

let windowFrame = UIScreen.main.bounds

window = UIWindow(frame: windowFrame)

Yukarıda gördüğünüz tanımlamada window sınıfını oluşturmadan önce ihtiyaç duyacağımız frame boyutlarını cihazın ekran kenarlarına göre alıp bir sabitte tutuyoruz daha sonra window oluşturuyorken bu frame değerlerini aldığımız sabiti atıyoruz.

Window oluştururken ihtiyacımız olan şey temel olarak sadece frame’dir, kullanmak içinse bir viewcontroller.

Devamı bir sonraki yazıda.