Photo by Daniel Korpai / Unsplash

UIButton: UIAction ile kullanımı (+iOS14)

Swift Jan 27, 2023

Bir ViewController içerisinde kod ile bir Buton tanımladığımızda action'larını tanımlamak için öncesinde @objc ve #selector ile init'de tanımlamak gerekiyordu. Ancak bu iOS 14 ve üzeri sürümlerde UIAction ile tanımlayabiliyoruz. Aşağıda @objc fonksiyonlu ve UIAction'lı kullanımı basit bir örnek gösterilmiştir.  

@objc ve #selector ile


final class ViewController: UIViewController {

    @IBOutlet private weak var counterLabel: UILabel!
    @IBOutlet private weak var counterButton: UIButton!

    var counter = 0 {
        didSet {
            counterLabel.text = "Counter: \(counter)"
        }
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        counterButton.addAction(self, 
        						action: #selector(counterButtonTapped),
                                for: .touchUpInside)
    }
    
    @objc func counterButtonTapped() {
    	counter += 1
    }
}

UIAction ile


final class ViewController: UIViewController {

    @IBOutlet private weak var counterLabel: UILabel!
    @IBOutlet private weak var counterButton: UIButton!

    var counter = 0 {
        didSet {
            counterLabel.text = "Counter: \(counter)"
        }
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        counterButton.addAction(UIAction { [weak self] _ in
            self?.counter += 1
        }, for: .touchUpInside)
    }
}


UIButton Configuration Tutorial: Getting Started
Learn how to give your buttons some style and color using the UIButton Configuration API.
Apple Developer Documentation
Apple Developer Documentation

Tags

Furkan Ozoglu

iOS Developer & Geomatics Engineer