UISwitch выключать все, когда включен один, как?

Для того чтобы выключать все 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 элемента изменяется, вызывается указанная функция.