Swift @IBDesignable ve @IBInspectable.

Ahmet Fahri YENER
lTunes Tribe
Published in
3 min readDec 2, 2020

Şimdi sizin kafanızda 2 tane soru işareti var “ ? ? ”

1. @IBDesignable ve @IBInspectable Nedir?

2. Nasıl Kullanılır?

Projelerimizi geliştirirken custom objeler kullanmanın büyük rahatlık sağladığı su götürmez* bir gerçektir. UI içerisinde defalarca kullanılacak objeleri kimse tekrar tekrar yapmak istemez ve bunun için de en güzel ve temiz yol olan custom objeler oluştururuz. Peki oluşturduğumuz bu objeleri tasarlarken de işimizi kolaylaştırmak istemez miyiz?

@IBDesignable oluşturduğumuz custom objelerin tasarımlarını Interface Builder üzerinde anında görmemizi ve kolaylıkla değişiklikler yaparak mükemmel objeyi oluşturmamızı sağlıyor.

@IBInspectable ise custom objelerimiz içerisinde bulunan özellikleri “Interface Builder” üzerinde bulunan “Attribute Inspector” alanında kolaylıkla değiştirmemizi sağlıyor.

Birazcık havada kalmış olabilir, hiç merak etme fotoğraflarla desteklediğimde daha da havada kalacak… Çünkü kullanmadan öğrenemezsin. O Xcode’un anlamsız hataları… iOS’in zamansız güncellemeleri… Anlayamazsınız…

Gördüğünüz üzere 10. satırda Tüm ihtişamıyla duruyor iki gözümün çiçeği.

Eveet, @IBDesignable tam olarak bu şekilde kullanılır. Oluşturduğumuz custom obje classının başına yazarak kullanıyoruz. Ben bu örnekte UIView den bir CustomView objesi türettim ve içerisini bu objede kullanacağım özellikleri tanımladım. şimdi gelin birde CustomView.xib dosyamızda bunun nasıl göründüğüne bakalım.

İşte Beeyle :)

Ee hani burada görecektik @IBDesignable kullanınca, nerede bizim köşeleri yuvarlak, siyah çerçeveli, kırmızı objemiz diyorsunuz ama öyle 3 kuruşa 5 köfte yok. Ufak bir dokunuş daha yapmamız lazım, prepare işlemi…

İşte prepare, işte adam gibi adam. (init içinde de setupView fonksiyonunu çağırmayı unutma!)

Bu işlemi yapma amacımız objemizin başlangıç değerini tanımlayabilmek ve tabiki bu nesneyi Interface Builder da görebilmek.

Harikaa! mmmhh çok güzel!

Şimdi @IBDesignable’ı kullandık, objeyi Interface Builderda gördük her şey güzel fakat değişiklik yapmak istersek kod üzerinden yapmamız gerekecek. Zahmetli bir iş…

İşte tam da bu anda @IBInspectable imdadımıza yetişiyor ve objemize verdiğimiz özellikleri “Attribute Inspector” alanında görüntülememizi ve değişiklik yapabilmemizi sağlıyor. Hemen ekleyelim ve sonucu görelim…

33-40–47 ve 54. satırlarda göründüğü üzere @IBInspectable ibaresi objemize atadığımız özellik değişkenlerinin başlarına geliyor.
Ta daaa!

Gördüğünüz üzere her şey yolunda ve mükemmel objemizi oluşturmuş olduk. Artık kolaylıkla objeler oluşturup tasarımlarını bu şekilde kolayca yapabiliriz. Ayrıca @IBInspectable’ın bir diğer güzelliği, kod içerisinde UI işlemlerini azaltarak, kod karmaşasını önlemede yardımcı olmasıdır.

*Su Götürmez: Üzerinde tartışılamayacak denli açık, kesin olan, tersi savunulamayacak durumda olan.

--

--