UISwitch
подклассы UIControl
. Используя Interface Builder, вы фактически добавили метод действия с именем didHideFlags(_:)
для события UIEvent.valueChanged
с целью, равной тому, какой экземпляр реализует функцию didHideFlags(_:)
:
switch.addTarget(<myTarget>, action: #selector(didHideFlags(_:)), for controlEvents: .valueChanged)
Из UIControl
документация ( Механизм целевого действия ):
Элементы управления используют механизм целевого действия, чтобы сообщать об интересных событиях, происходящих с вашим кодом. Механизм целевого действия упрощает код, который вы пишете, чтобы использовать элементы управления в вашем приложении. Вместо того, чтобы писать код для отслеживания сенсорных событий, вы пишете методы действий, чтобы реагировать на определенные * control элементы c. Например, вы можете написать метод действия, который реагирует на изменения в значении ползунка. Элемент управления выполняет всю работу по отслеживанию входящих событий касания и определяет, когда вызывать ваши методы.
Методы действий не несут ответственности за , вызывающее стандартное поведение a UIControl
, такие как UISwitch
включение или выключение. Скорее, методы действия реализуют побочные эффекты, возникающие в ответ на события.
Как Paulw11 предлагает , чтобы программно включить или выключить UISwitch
, изменить его isOn
свойство или вызовите его setOn(_:animated:)
метод:
switch.isOn = false
или
switch.setOn(false, animated: true)