iOS:UISwitch 无法隐藏 .hidden = YES

发布于 2024-12-12 03:47:30 字数 890 浏览 4 评论 0原文

我有一个非常简单的用户界面。你可以从图片中看到。如果用户点击 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 );
}

正如您从屏幕截图中看到的,断点被击中。当我切换分段控件时,代码正在执行。但奇怪的是 UISwitches 无法隐藏。

如果我点击其他段(EMIT),它就会正常工作。即标签按其应有的方式隐藏。

那么为什么开关不也隐藏起来呢?

在此处输入图像描述

I have a very simple UI. you can see from the picture. If the user hits EMIT, it should show the toggles and hide the label readouts.

If the user hits LISTEN it should do exactly the reverse.

Here is the code ( also contained in the screenshot )

-(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 );
}

As you can see from the screenshot, the breakpoint is getting hit. the code is executing when I toggle the segmented control. but bizarrely the UISwitches fail to hide.

If I hit the other segment (EMIT) it works correctly. ie The labels hide just as they should do.

So why won't the switches also hide?

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

清晰传感 2024-12-19 03:47:30

( isEmitting ? YES : NO ); 更改为 YES。然后,如果按钮仍然可见,则表明您的 IBOutlet 尚未连接。

如果它们消失,那么您就知道 isEmitting 没有按预期设置。

Change ( isEmitting ? YES : NO ); to YES. Then, if the buttons are still visible, you know your IBOutlets aren't hooked up.

If they disappear, then you know that isEmitting is not being set as expected.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文