【问题标题】:UIButton under hidden UILabel won't work隐藏的 UILabel 下的 UIButton 不起作用
【发布时间】:2011-07-05 14:50:38
【问题描述】:

我有一个大的UILabel,我在做其他事情时用它来覆盖一堆按钮。
我最初设置的只是myLabel.hidden = YES;,所以你看不到UILabel,但UIButtons(在它下面)将不再起作用。

UILabel 是否有其他设置可以在隐藏时允许触摸“通过它”?谢谢。

【问题讨论】:

  • 发布一些代码,说明您如何连接这些标签和按钮以及如何隐藏标签?
  • 我只是做 myLabel.hidden = YES;在 ViewDidLoad 中。按钮或标签以及接线没有其他异常。
  • 如果您不想使用 Schnarchii 的方法,请确保您也输入myLabel.enabled = NO;
  • 还是不行,我肯定还有什么奇怪的东西漏掉了,我会告诉大家的... thx
  • 好吧,我是个白痴!我有一个 uiScrollView !对不起大家,这里有很好的有用代码 sn-ps .. thx

标签: iphone uibutton touch uilabel hidden


【解决方案1】:

为什么要使用 UILabel 来覆盖按钮。

设置一下

UIButton *button;
[button setUserInteractionEnabled:NO];

[button setUserInteractionEnabled:YES];

【讨论】:

  • 我不想在一些 UITextField 编辑过程中看到它们。其中有很多,这似乎是最快的方法,我很惊讶隐藏标签会阻止按钮工作!
  • 你也可以隐藏你的按钮:[button setHidden:YES];
  • 是的,谢谢 Schnarchii,我有一些状态要存储,一些隐藏的一些没有等,当我把它们都带回来时会很痛苦..
  • 在按钮上放置一个 UILabel 以在其上有一个背景“UIVIew”(即 UIButton)可能很有用,但背景的整个区域都是可点击的按钮的方式。
【解决方案2】:

您可以使用addSubViewremoveFromSuperview 方法:

当你想用你的 UILabel 隐藏你的 UIButton 时:

[self.view addSubview:myLabel];

反之:

[myLabel removeFromSuperview];

【讨论】:

    【解决方案3】:

    我不确定为什么隐藏会停止按钮上的触摸事件。无论如何,您可以通过以下调用将按钮显式置于前台。

    [self bringSubviewToFront:button];
    

    【讨论】:

      【解决方案4】:

      作为隐藏或覆盖事物的一般方法,最简单的方法就是直接使用 UIView。设置:

      [myCoverView setUserInteractionEnabled:YES]; 
      

      它会拦截触摸并阻止对其下方按钮的触摸。

      当您隐藏它或将 alpha 设置为 0.0 时,它应该停止阻止触摸; 您可以随时将覆盖视图交互切换到:

      [myCoverView setUserInteractionEnabled:NO]; 
      

      触摸会通过它。

      如果出于某种原因您需要 UILabel,这些方法也可以使用。

      【讨论】:

        【解决方案5】:

        [myLabel setUserInteractionEnabled:NO]。 即使是隐藏的,您的标签也会受到影响。你必须禁用它才能实现你想要的。

        【讨论】:

          【解决方案6】:

          我认为你应该隐藏你的按钮而不是用标签覆盖它们。

          [yourButton setHidden = YES]; 
          [yourButton2 setHidden = YES]; 
          ...
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-02-02
            相关资源
            最近更新 更多