Swift @IBDesignable ve @IBInspectable.
Ş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…
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.
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…
Bu işlemi yapma amacımız objemizin başlangıç değerini tanımlayabilmek ve tabiki bu nesneyi Interface Builder da görebilmek.
Ş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…
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.