【问题标题】:How to hide a UIButton title after onclick eventonclick事件后如何隐藏UIButton标题
【发布时间】:2010-08-20 22:49:34
【问题描述】:

当我点击一个按钮时,它的标题应该是隐藏的。我不想将标题设置为空字符串@""。那么,我该怎么做呢?

【问题讨论】:

    标签: iphone objective-c cocoa-touch ipad uikit


    【解决方案1】:

    我现在正在使用的只是一个更好的解决方案:

    接受的答案不允许我在需要时重复使用该名称,因此我以这种方式使用:

    -(void)SomeButtonPressed {
        someButton.titleLabel.textColor = [UIColor clearColor];
    }
    

    我认为最好让按钮的标签不可见。

    【讨论】:

      【解决方案2】:

      为什么不想将标题设置为空字符串?只需将值存储在本地字段中并将按钮的标题设置为@“”,一切都会好起来的。

      在您的 .h 中:

      NSString *someLocalField;
      

      在你的 .m 中:

      -(void)SomeButtonPressed {
        someLocalField = someButton.text;
        someButton.text = @"";
      }
      

      这样,如果您需要恢复按钮的文本,您可以这样做:

      someButton.text = someLocalField
      

      如果您想为一堆按钮执行此操作,您始终可以使用 NSDictionary 并将字符串值与按钮相关联。

      【讨论】:

      • 你在 NSString 之后忘记了一个“星”(*) :)
      【解决方案3】:

      如果您希望它在手指放在按钮上时消失,

      [button setTitle:@" " forState:UIControlStateHighlighted];
      

      如果你想让它在显示和不显示之间切换,

      [button setTitle:@" " forState:UIControlStateSelected];
      [button setTitle:@" " forState:UIControlStateSelected|UIControlStateHighlighted];
      

      然后在按钮操作中设置button.selected = !button.selected

      我使用单个空格而不是空字符串,因为有时空字符串具有特殊处理,使其等效于 nil。如果空字符串有效,您可以使用它。

      【讨论】:

        【解决方案4】:

        我没有尝试过,但如果您需要标题文本保持不变,但仍对用户隐藏,您可以将字体颜色设置为 [UIColor clearColor];

        【讨论】:

          【解决方案5】:

          使用 button.titleLabel.hidden = YES 将不起作用(至少在 iOS 7 上)。

          我最终使用了:

          // remove the button since hiding it doesn't work
          [button.titleLabel removeFromSuperview];
          // put back when you're done
          [button addSubview:button.titleLabel];
          

          【讨论】:

          • 干得好,工作完美,这应该被接受的答案
          【解决方案6】:
          // Hide text
          button.titleLabel.layer.opacity = 0.0f;
          
          // Show text
          button.titleLabel.layer.opacity = 1.0f;
          

          【讨论】:

          • 它没有回答点击时它是如何隐藏的
          【解决方案7】:

          只是隐藏标题听起来有点奇怪,而且不像 Apple 界面。您也可以将按钮设置为隐藏,然后整个事情就消失了。如果您确实希望标题是唯一消失的东西(请记住,按钮仍将在此状态下工作,只是没有标题),那么您始终可以指定背景颜色 someButton.currentTitleColor = someButton.backgroundColor; 应该使文本消失(您可能还需要设置阴影颜色)。

          【讨论】:

            【解决方案8】:

            我猜here你可以找到解决方案,只需将包含文本的标签隐藏即可。

            button.titleLabel.hidden = YES;
            

            您可以将它放在一个 IBAction 中,该 IBAction 在 InterfaceBuilder 中链接到与您的按钮关联的 Touch Inside Up 事件

            【讨论】:

              【解决方案9】:

              你试过button.titleLabel.hidden = YES吗?

              【讨论】:

              • “请求标题标签的成员不是结构或联合”。这是我得到的错误。
              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2017-01-23
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-11-14
              • 2013-08-20
              • 2015-05-12
              相关资源
              最近更新 更多