2016-08-25 2 views
0

3 개의 스위치가 있습니다. 나는 한 사람이 다른 사람을 켤 때 그것을 원한다.UISwitch가 꺼지지 않습니까?

내 코드는 현재 다음과 같습니다.

if MPHSwitch.on { 
     KPHSwitch.enabled = false 
     MperSSwitch.enabled = false 
    } 

나는 단순히 스위치를 끄고 싶지만, 활성화 된 설정을 false로 설정하면 회색으로 변합니다.

나는 KPHSwitch.off을 시도했지만 제대로 작동하지 않는 것 같습니다.

+2

'KPHSwitch.setOn (on : false, animated animated : true)'? – Larme

답변

2
은 당신의 상태에 다음 코드를 변경

:

KPHSwitch.setOn(false, animated: true) //If you don't want animation, send animated parameter false 
MperSSwitch.setOn(false, animated: true) 

문제는, 대신에 당신이 시튼 방법을 사용해야 할 때, 여기에 잘못된 속성을 사용하고 있습니다. Apple Documentation on UISwitch 가입일

:

SETON (_ : 애니메이션 :

선택적 전환 애니메이션, ON 또는 OFF로 스위치의 상태를 설정한다.

당신이하고있는 일은 UIControl 즉이 경우 스위치의 작동 능력을 변경하는 것입니다.

Apple Documentation on UIControl Class에서이 활성화 무엇을 수행합니다

그것을 해제하기 위해 제어 또는 false 을 사용하려면이 속성의 값을 true로 설정합니다. 활성화 된 컨트롤은 사용자 상호 작용에 응답 할 수 있습니다. 비활성화 된 컨트롤은 터치 이벤트를 무시하며 은 그 자체가 다르게 나타납니다. 이 속성을 false로 설정하면 UIControlStateDisabled 플래그가 컨트롤의 상태 비트 마스크에 추가됩니다. 활성화하면 컨트롤이 해당 플래그를 다시 제거합니다.

UISwitch가 터치 이벤트를 무시하고 그 자체로 다시 그려지면서 색상이 회색으로 변경됩니다.

따라서 귀하는 setOn을 사용해야합니다.

관련 문제