无法切换状态的UISwitch

问题描述:

我必须在我的应用程序中UISwitches。启动时,他们都设置为关闭,第二开关被禁止,当第一开关是藏汉,这意味着只能启用:无法切换状态的UISwitch

@IBAction func switchOneToggled(sender: UISwitch) { 
    if switchOne.on { 
     switchTwo.enabled = true 
    } 
    else { 
     switchTWo.enabled = false 
    } 
} 

我的问题是,当我使switchOneswitchTwo被启用,但是我不能通过触摸switchTwo的打开/关闭状态。

+0

您显示的代码应该为您提供您正在尝试执行的操作。可能是属性检查器中有其他东西导致这不起作用。 – Vakas

+0

@Vakas除了将默认状态设置为关闭以外,我在属性检查器中没有任何更改。 – StevoHN

+0

因为您缺少'switchTWo.on = YES/NO;'的代码;'在enabled = true下面写YES,在enabed = false下面NO。 – TheTiger

@IBAction func switchOneToggled(sender: UISwitch) { 
    switchTwo.enabled = switchOne.on 
} 

你也许有userinteractionenabled设置为falseswitchTwo

+0

默认情况下已启用用户交互。为了防万一,切换开关时我也尝试过,但仍然无效。 – StevoHN

+0

在交换机上方是否可能存在其他一些(透明)视图,以防止您切换其状态?或者对于任何交换机祖先而言'userinteractionenabled'属性设置为'false'? –

+0

在任何开关的顶部都没有任何视图,并且我没有在任何地方将'userInteractionEnabled'设置为'false'。我没有线索。 – StevoHN

问题是,当轻击开关并且开关状态改变时,您的switchOneToggled被调用。您应该检查Switch 1的状态并在您的viewDidLoad中启用Switch 2。

+0

但是'switchTwo'只会在'viewDidLoad'中选中'switchOne'的状态时才会被设置一次。每次'switchOne'改变它的开/关状态并相应地设置它都必须被检查。 – StevoHN

+0

否。一旦视图加载,它将被设置,并且每当开关改变其状态时,将使用switchOneToggled再次检查它。 – Vakas

+0

仍然不能正常工作 – StevoHN