UIKit: UISwitch
UIKit kütüphanesinin basit ve kullanışlı bir kontrol aracı olan UISwitch, hangi durumlarda kullanılır ve kod ile nasıl kişiselleştirilir?
Merhaba TurkishKit okuyucuları, bu yazımızda UISwitch elementini inceleyeceğiz. Benzer bir denetleme mekanizması olan UISlider elementini de önceki yazımızda incelemiştik, okumanızı tavsiye ederim.
Vakit kaybetmeden başlayalım!
UISwitch Nedir ?
UISwitch elementi, durumları denetleme imkanı sağlayan, UIControl yapısının bir alt sınıfıdır. Bir özellik veya fonksiyon üzerinde Açık/Kapalı durumunu kontrol etmek için sıklıkla kullanılır.
Kullanım Alanları
UISwitch, temel işlevinin Açık/Kapalı durumunu denetlemek olduğundan uygulamaların ayar değişikliği işlemleri için çok uygun bir yapıdır.
UISwitch Yapısı
UISwitch elementi temel amacı olan denetleme işlevini yapabilmek için içerisinde isOn isimli, boolean tipinde, UISwitch elementinin Açık/Kapalı durumunu belirten bir değişken ve bu değişken üzerinde değişiklik yapılmasına imkan vermek için setOn adında bir fonksiyon bulundurur.
var isOn : Boolfunc setOn ( Bool, animated: Bool )
Değişken üzerinde yapacağımız değişiklikler, bizlere UISwitch elementimizin durumuna bağlı işlemleri yapmamızı sağlar.
Aynı zamanda UISwitch, kişiselleştirilmesini sağlayan özellikler de bulundurur.
//UISwitch açık durumuna geldiğinde gösterilecek rengi belirlervar onTintColor: UIColor?//UISwitch kapatıldığında elementin dış çerçevesinin rengini belirlervar tintColor: UIColor! //UISwitch elementinin yuvarlak butonunun rengini belirlervar thumbTintColor: UIColor?//UISwitch açık durumdayken elementin içinde gösterilecek resmi tutarvar onImage: UIImage?//UISwitch kapalı durumdayken elementin içinde gösterilecek resmi tutarvar offImage: UIImage?
Bu özelliklerin hepsini yazacağımız örnek uygulamamız üzerinde kullanacağız.
Kodlamaya geçelim!
UISwitch İmplementasyonu
UISwitch elementini kullanacağımız örnek uygulamamızda bir UISwitch elementine ve UISwitch elementimizin durumunu ekranda göstermemizi sağlayacak bir UILabel elementine ihtiyacımız var.
1 ) UISwitch Objesi Tanımlama
UISwitch elementimizi Interface Builder yardımı ile Storyboard ekranımızda oluşturduktan sonra ViewController dosyamız içerisine tanımlıyoruz. Bu işlemi objemizin durumunu ekran üzerinde göstermek için kullanacağımız UILabel objemiz için de tekrarlıyoruz.
Ardından objelerimizin ekranda görünmesini istediğimiz konumunu belirliyoruz.
İlk adımımızı tamamlamak için son olarak yapmamız gereken UISwitch objemizin uygulamamız ilk çalıştığındaki durumunu kodlamak olacak :
mySwitch.setOn(false, animated: true)
Bu işlemleri yaptığımıza göre artık UISwitch objemizi istediğimiz görünüme kavuşturmaya hazırız!
2 ) UISwitch Objesini Kişiselleştirme
UISwitch objemizin görüntüsünü yapmak istediğimiz tasarıma göre UISwitch sınıf özelliklerini kullanarak belirliyoruz.
Bu adımdan sonra UISwitch objemiz ekranda tanımladığımız renklerde belirecektir.
3 ) UISwitch Objesinin Durumunu Kontrol Etmek
Sırada UISwitch objemizi açtığımız ve kapadığımız durumlarda, UILabel objemizi değiştirmek var. UISwitch elementimizin durumunu her değiştirdiğimizde, UILabel elementinin yazısını değiştirebilmek için bir fonksiyon yazdık.
Bu fonksiyon sayesinde UISwitch elementimiz üzerinde yapacağımız her tıklamada tanımladığımız UILabel elementimizin metnini ve UISwitch değişkenimizin içerisindeki isOn özelliğini güncelleyebiliyoruz.
4 ) UISwitch Elementi ve Fonksiyonu Bağlamak
Yazdığımız fonksiyonu UISwitch değişkenimize bağlamak için UIControl sınıfının addTarget fonksiyonunu kullanıyoruz. Böylece kullanıcının UISwitch ile etkileşime girdiği sırada yukarıda yazdığımız fonksiyonun çalışmasını sağlıyoruz.
Bu adımın da sonuna geldiğimize göre uygulamamızı çalıştırabiliriz.
5 ) Uygulamayı Çalıştırmak
Eğer gösterilen adımları takip ederek uygulamamızı kodladıysak, sonuç aşağıdaki gibi olacaktır.
Yazdığımız uygulamanın kaynak kodlarına GitHub üzerinden ulaşabilirsiniz.
Bu yazımızda UISwitch mekanizmasının yapısını, içerdiği özellik ve fonksiyonları gördük, örnek bir uygulama ile pekiştirdik. Hepinizin hedeflerinize bir adım daha yaklaşmasını dilerim. Bir sonraki yazımızda görüşmek üzere, hoşçakalın. ✋