iOS: UISwitch не может скрыться с помощью .hidden = YES - PullRequest
0 голосов
/ 26 октября 2011

У меня очень простой интерфейс. Вы можете видеть на картинке. Если пользователь нажимает EMIT, он должен показывать переключатели и скрывать показания меток.

Если пользователь нажимает 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 );
}

Как видно из скриншота, точка останова получает удар. код выполняется, когда я переключаю сегментированный элемент управления. но странным образом переключатели UIS не могут скрыться.

Если я попал в другой сегмент (EMIT), он работает правильно. т. е. метки прячутся так, как должны.

Так почему же коммутаторы тоже не прячутся?

enter image description here

1 Ответ

1 голос
/ 26 октября 2011

Измените ( isEmitting ? YES : NO ); на YES.Затем, если кнопки все еще видны, вы знаете, что ваши IBOutlets не подключены.

Если они исчезают, то вы знаете, что isEmitting не устанавливается должным образом.

...