Это может быть глупый вопрос, но я пытаюсь обернуть голову, есть ли лучший способ сделать это. Если у меня есть 10 ViewControllers, каждый с отдельной кнопкой (скажем, у кнопок есть сегменты, созданные в раскадровке), но я хочу, чтобы у всех них был простой эффект при нажатии, я бы написал что-то вроде этого:
Во-первых, расширение для UIButton, поэтому у него есть метод, который обрабатывает анимацию
extension UIButton {
func tap(){
UIButton.animate(withDuration: 0.05,
animations: { self.alpha -= 0.1 },
completion: { finish in
UIButton.animate(withDuration: 0.1, animations: {
self.alpha += 0.1
})
})
}
, а затем IBAction для каждого отдельного ViewController.
class FirstViewController: UIViewController {
@IBOutlet weak var button: UIButton!
@IBAction func buttonTouchUpInside(_ sender: Any) {
button.tap()
}
}
...
class TenthViewController: UIViewController {
@IBOutlet weak var button: UIButton!
@IBAction func buttonTouchUpInside(_ sender: Any) {
button.tap()
}
}
Мне интересно, есть ли лучший путь. Некоторый способ расширить UIButton так, чтобы все UIButton вызывали tap (). Нужно ли мне добавить цель ко всем из них? Будет ли это переопределено @IBAction позже, если я его использую?
Заранее спасибо и извините, если это глупый вопрос.