Swift 101: Algılayıcıları Kullanmak

Swift 101: Algılayıcıları Kullanmak

Dünya’nın en çok kullanılan programlama dillerinden biri olan Swift, uygulama geliştirirken bizlere birçok fırsat sunuyor. Bunlardan biride algılayıcı yapılar. Bu yapılar sayesinde bir objeyi tıklanabilir hale getirebilir ve bu duruma özel fonksiyonlar atayabiliriz. Geliştiriciler için hayat kurtaran birçok özellikten biri olan bu yapı nasıl kullanılır? Gelin hem birlikte yakından inceleyelim hem de Swift 101 serimize kaldığımız yerden devam edelim.


Adım 1: Uygulama Tasarımı

Uygulamamız Dünya’da bulunan önemli noktaları gösteren bir galeri olacak. Galeride gösterilen fotoğrafında adı üstünde yazacak. Kullanıcının ismi görebilmesi için bir Label yerleştirdik. Fotoğrafların geleceği noktaya ise bir ImageView ekledik. Bu sayede fotoğraflara tıklayarak işlem yapabileceğiz.


Adım 2: Tasarımı Kodla Bağlayalım

Yapılan tasarımı kodla bağlamak oldukça kolay. Önce Label yapımıza tıklıyoruz ve Control tuşuna basılı tutarak ViewController içine sürüklüyoruz. Burada bir isim belirledikten sonra Label kullanıma hazır oluyor. Ardından aynı işlemi ImageView içinde yapıyoruz ve bütün tasarım kodla birleşmiş oluyor.


Adım 3: ImageView’un Etkileşim Özelliğini Aktif Etmek

Öncelikle başta da dediğimiz gibi resimlerimize tıklayıp birbiri arasında geçiş sağlayacağız. Fakat bunu yapabilmemiz için öncelikle ImageView yapımızın kullanıcı etkileşim özelliğini aktif etmeliyiz. Bunun için ImageView için belirlediğimiz ismi yazıp nokta işareti koyduktan sonra isUserInteractionEnabled özelliğini seçiyoruz. Bunu true olarak belirleyince ImageView kullanıcı ile etkileşime geçmeye hazır hale geliyor.

viewImageView.isUserInteractionEnabled = true

Adım 4: Jest Algılayıcı Eklemek

ImageView yapısının kullanıcı ile etkileşimi aktifleştirdik. Sıra bu yapıya dokunma özelliği eklemekte. Bunun için UITapGestureRecognizer sınıfını kullanacağız. Yakından incelersek bir target ve action istiyor. Burada target ViewController yapımızın kendisi olacak. Bunu da self ile ifade ediyoruz. Action kısmı ise bir selector istiyor. Selector yapısı ise kendisine bir objective c fonksiyonu istiyor. Bu fonksiyonun normal bir fonksiyondan tek farkı önündeki @objc ifadesi oluyor.

let tap = UITapGestureRecognizer(target: self, action: #selector(changePic))

Adım 5: Algılayıcıyı ImageView’a Eklemek

ImageView yapısının kullanıcı ile etkileşimini aktif ettik. Ardından bir jest algılayıcı oluşturduk. Şimdi sıra bu algılayıcıyı ImageView’a eklemekte. Bu işlem ise oldukça kolay. Bunun için yine ImageView için belirlediğimiz adı yazıp nokta koyuyoruz. Ardından çıkan addGestureRecognizer seçeneğine tıklıyoruz. Bu yapının içine oluşturduğumuz GestureRecognizer değişkenimizi yazdıktan sonra işlem tamam.

viewImageView.addGestureRecognizer(tap)

Final

import UIKit

class ViewController: UIViewController {
    
    @IBOutlet weak var nameLabel: UILabel!
    @IBOutlet weak var viewImageView: UIImageView!

    var viewNameArray = ["Kız Kulesi","Tac Mahal","Keops Piramidi","Everest Dağı"]
    var viewArray = ["kız kulesi","tac mahal","keops","everest"]

    override func viewDidLoad() {
        super.viewDidLoad()
        changePic()
        viewImageView.isUserInteractionEnabled = true
        let tap = UITapGestureRecognizer(target: self, action: #selector(changePic))
        viewImageView.addGestureRecognizer(tap)   
    }

    @objc func changePic () {
        let random = Int(arc4random_uniform(UInt32(viewArray.count)))//Rastgele sayı üretir
        viewImageView.image = UIImage(named: "\(viewArray[random])")
        nameLabel.text = "\(viewNameArray[random])"
    }
}


Uygulamamız hazır. Göründüğü üzere kullanıcı herhangi bir buton yardımı olmaksızın uygulama ile etkileşime geçerek işlemini gerçekleştirdi. Geliştiriciler için fazladan obje oluşturmayı engelleyen bu yapı günümüzde birçok kullanıcı tarafından seviliyor. Peki sizler de bu yapıyı sevdiniz mi?

İnternet sitesi https://synta-x.com
Yazı oluşturuldu 30

Benzer yazılar

Aramak istediğinizi üstte yazmaya başlayın ve aramak için enter tuşuna basın. İptal için ESC tuşuna basın.