Странное поведение UISwitch - PullRequest
0 голосов
/ 22 декабря 2018

Я работаю над приложением для умного дома, где пользователь может переключать устройство.

Если устройство не подключено, возможно, перевернуть переключатель может быть опасно, поэтому в этом случае я переворачиваю переключатель обратно с помощью switch.isOn = false и отображаю предупреждение.

Иногда переключатель заморожен, когда пользовательский интерфейс отображает его Половина Вкл. (круг слева, фон синий), и свойства показывают, что он выключен.

Есть ли какой-нибудь известный способ для этого?Или я единственный, кто сталкивается с этой ошибкой?

Google не показывает прямой способ решить эту проблему

public class MyUIController: UIViewController{
...
weak var switch:UISwitch!

@IBAction
public func toggle(sender:Any){
    if (device.isConnected){
        device.sendUpdate(switch.isOn)
    }else{
        switch.isOn = false
    }
}
...
}

1 Ответ

0 голосов
/ 22 декабря 2018

Вы должны отключить переключатель, когда устройство не подключено, чтобы обеспечить лучшее взаимодействие с пользователем.Если вам нужно переключить состояние переключателя после того, как пользователь переключит его, подождите, пока анимация не закончится.Это исправит замораживание и странные графические эффекты.

switch.isEnabled = false
...