2013-10-02 2 views
7

UISwitch를 사용하여 내 앱의 하위보기를 호출합니다. 그러나 스위치는 약 60 %의 시간 동안 작동합니다. 내 코드를 테스트하기 위해 스위치를 다른 IBAction에 연결하여 스위치 상태를 콘솔에 기록했습니다. 두 기능 모두 특정 시간에 스위치의 상태에 응답하지 않습니다. 즉 두 기능 모두 스위치의 상태를 동시에 무시합니다. 다른 사람이 iOS7의 UISwitches에서이 동작을 경험 했습니까?iOS7에서 가능한 UISwitch 버그?

- (IBAction)showHideSomeSubView:(UISwitch *)sender { 
if (_mySwitch.on) { 
    [self.view addSubview:someSubView]; 
} 
else { 
    [someSubVew removeFromSuperview]; 
}} 

편집 :

같은 스위치는 다음과 같은 조치에 연결되어 :

- (IBAction)switchToggled:(UISwitch *)sender { 
sender = _mySwitch; 
if ([sender isOn]) { 
    NSLog(@"On"); 
} else { 
    NSLog(@"Off"); 
}} 

두 행동이 스위치 같은 방식으로 반응한다.

+0

상태 변경에 대응하기 위해 어떤 이벤트를 사용하고 있습니까? – Abizern

+0

코드를 게시 할 수 있습니까? – Woodstock

+0

@Abizern : 하위 뷰를 표시하거나 숨기는 IBAction입니다. – Barry

답변

3

iOS 7 앱에서 여러 개의 UISwitches를 사용하고 있는데 값 변경 동작에 아무런 문제없이 응답했습니다. 스위치는 일관되게 값을 정확하게보고합니다. IB의 동작에서 스위치를 풀고 다시 연결하여 값 변경 동작을 연결하는지 확인해야합니다.

3

예, iOS 7 iPad 시뮬레이터에서 UISwitch를 사용하면 switchToggled : 메소드에 해당하는 1-12 콜백이 표시됩니다. 마지막 콜백에서 값은 실제로 변경되었습니다. 이전 콜백에서는 그렇지 않습니다. 내가하고있는 일은 스위치가 켜져 있는지 여부에 상관없이 캐싱이다. 그런 다음 switchToggled : 메소드에서 값이 실제로 변경되었는지 여부를 확인합니다. 그렇지 않으면 콜백을 무시합니다. 이것은 사용자가 올바르게 동작하도록 만듭니다.

문제는 기기에서 발생하지만 분명히 적습니다. 동일한 해결 방법이 거기에서 작동하는 것 같습니다.

4

나는 이상한 행동을 확인합니다 !!!! 스위치의 작은 원을 드래그하여 여러 번 호출 된 동작을 볼 수 있습니다 (내 경우 최대 403 : D) Apple 엔지니어가 의도 한 바를 잘 모르겠습니다. 이 새로운 행동에 관한 문서를 찾았 으면 BTW, 찾으면 알려줘.

고맙습니다.