2011-10-26 7 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); 
} 

で、ブレークポイントが打たれます。セグメント化されたコントロールを切り替えるとコードが実行されます。奇妙なことに、UISスイッチは隠れません。

私は他のセグメント(EMIT)をヒットした場合、正しく動作します。すなわち、ラベルはちょうど彼らがすべきであるように隠れる。

なぜスイッチも隠されませんか? YES

enter image description here

+1

スイッチはコードまたはIBで追加されますか? IBの場合、コンセントへのコンセントは正しく設定されていますか?他のUISwitchのプロパティ、例えばアルファ値を変更できますか? –

答えて

1

変更(isEmitting ? YES : NO);。次に、ボタンがまだ表示されている場合は、IBOutletが接続されていないことがわかります。

これらが消えると、isEmittingが期待どおりに設定されていないことがわかります。

+0

はい、彼らは縛られていませんでした。愚かであることのために謝罪。 –

関連する問題