2011-10-26 2 views
0

나는 아주 간단한 UI를 가지고 있습니다. 당신은 그림에서 볼 수 있습니다. 사용자가 EMIT를 치면 토글을 표시하고 레이블 판독 값을 숨겨야합니다.iOS : UISwitch가 .hidden = YES로 숨기기 실패

사용자가 LISTEN을 누르는 경우 정확히 반대를 수행해야합니다. 여기

(또한 스크린 샷에 포함 된) 코드

-(IBAction) segmentedControlIndexChanged 
{ 
// LOG (@"Seg: %d", segmentedControl.selectedSegmentIndex); 

    BOOL isEmitting = (segmentedControl.selectedSegmentIndex == 0); 
    BOOL isListening = ! isEmitting; 

    self.remoteIOAudioUnit->emitting = isEmitting; 

    // hide readout if we're transmitting 
    labelA.hidden = labelB.hidden = labelC.hidden = lblCurrentRoom.hidden = (isEmitting ? YES : NO); 

    // hide toggles if we're listening 
    switchA.hidden = switchB.hidden = switchC.hidden = (isListening ? YES : NO); 
} 

당신은 스크린 샷에서 볼 수 있듯이, 브레이크 포인트가 박히는이다. 세그먼트 화 된 컨트롤을 토글 할 때 코드가 실행 중입니다. 그러나 기괴하게 UISwitches는 숨기 어렵습니다.

내가 다른 세그먼트 (EMIT)를 맞으면 제대로 작동합니다. ie 레이블은 마치 그들이하는 것처럼 숨 깁니다.

그렇다면 스위치가 숨기지 않는 이유는 무엇입니까? YES

enter image description here

+1

스위치는 코드 또는 IB에 추가됩니까? IB에서 콘센트 스위치가 올바르게 설정 되었습니까? 예를 들어 알파 값과 같은 다른 UISwitch 속성을 수정할 수 있습니까? –

답변

1

변경 (isEmitting ? YES : NO);. 그런 다음 버튼이 계속 표시되면 IBOutlet이 연결되지 않는다는 것을 알고 있습니다.

사라질 경우 isEmitting이 예상대로 설정되지 않은 것을 알게됩니다.

+0

예 그들은 연결되지 않았습니다. 죄송합니다. 바보가되는 거에요. –