Для того чтобы выключать все UISwitch элементы, когда один из них включен, вам нужно следить за состоянием каждого UISwitch и обновлять все остальные элементы, когда состояние одного из них изменяется.
Прежде всего, создайте IBAction функцию, которая будет вызываться при изменении состояния любого UISwitch элемента. В этой функции вы можете обойти все UISwitch элементы в вашем интерфейсе и установить состояние каждого UISwitch в выключенное состояние, за исключением того, который вызвал данную функцию.
Вот пример кода для реализации этой функции:
@IBAction func switchValueChanged(_ sender: UISwitch) { // Обход всех UISwitch элементов for case let switchView as UISwitch in self.view.subviews { // Проверяем, что это не тот же самый элемент, вызвавший функцию if switchView != sender { // Устанавливаем все остальные элементы в состояние "выключен" switchView.isOn = false } } }
В этом коде мы используем for case let ... as
конструкцию, чтобы обойти все подпредставления self.view
и искать только UISwitch элементы. Затем мы проверяем, что это не элемент, вызвавший функцию, и устанавливаем все остальные элементы в состояние "выключен".
Теперь вам нужно связать эту функцию с событием изменения состояния UISwitch элемента. Вы можете сделать это с помощью интерфейса Storyboard или реализовать это программно в методе viewDidLoad
.
Настройте связи между вашими UISwitch элементами и switchValueChanged(_:)
функцией, чтобы каждый раз, когда состояние UISwitch элемента изменяется, вызывается указанная функция.