Swift IBInspectable & IBDesignable

Ata Anıl Turgay
blutv
Published in
2 min readJun 28, 2022

Herkese merhaba, bu yazıda IBInspectable ve IBDesignable attributelarını ele alacağız.

Projelerimizde tekrar kullanılabilir custom viewlar(button, label, textfield vs.) oluşturmamız her zaman yararımıza olacaktır. Aksi durumda her yeni ekranda her defasında tekrar tekrar efor harcanacak ve bu da doğal olarak zaman kaybına sebep olacaktır. Bu sebeple kullanacağımız viewları ve standartlarını önceden belirlemek ve bu standartlarda custom viewlar oluşturmak dinamik ve tekrar kullanılabilir yapılar elde etmemiz için en mantıklı seçenektir.

İşte bu dinamik ve yeniden kullanılabilir custom viewları yaratırken IBInspectable ve IBDesignable attributeları bize oldukça fayda sağlıyor.

Gelin bunu bir örnekle açıklayalım!

Elimizde bir UView olsun ve köşelerini storyboard üzerinden yuvarlamak istiyoruz diyelim. Bu durumda IBInspectable devreye giriyor.

İlk olarak UView’dan BluContainerView adıında(class adı size kalmış) custom bir class yaratıyoruz ve aşağıdaki şekilde cornerRadius property’sini oluşturuyoruz.

Ardından storyboard üzerinde ekrana bir view sürükleyip bırakıyoruz ve bu view’ı seçtikten sonra Identity Inspector sekmesindeki Custom Class alanı içerisinde bulunan class yerine oluşturduğumuz custom view’ın class adını giriyoruz. Bu işlem ile artık yazmış olduğumuz custom class storyboarda koyduğumuz view ile bağlanmış oluyor.

Yukarıdaki kod bloğunda kullandığımız IBInspectable attribute’u ile artık cornerRadius property’sine Storyboard üzerinde Attributes Inspector sekmesinde erişebilir ve bir değer set edebiliriz(örneğimizde 30). XCode isimlendirmeyi CamelCase formatı üzerinden cornerRadius = “Corner Radius” olacak şekilde değiştirecektir.

Buraya kadar her şey tamam gibi ama projeyi run etmeden set ettiğimiz cornerRadius değerinin UView üzerindeki etkisini henüz Storyboard’da göremiyoruz. Bu sefer de devreye IBDesignable giriyor. IBDesignable aslında IBInspectable’ın tamamlayıcısı gibi de düşünülebilir. IBInspectable propertyler için, IBDesignable ise nesneler için kullanılan attribute’lardır.

Yukarıdaki kod bloğunda class’ın adının başına eklediğimiz IBDesignable attribute’u sayesinde artık projeyi run etmemize gerek kalmadan storyboard üzerinde cornerRadius property’sini değiştirdikçe view’ın set edilen değere göre yenilendiğini gözlemleyebiliriz.

Bu yazıda IBInspectable ve IBDesignable nedir, nasıl kullanılır bunları inceledik.

Herkese keyifli araştırmalar ve okumalar…

--

--