隐藏UIButton标题

时间:2011-09-04 16:11:11

标签: iphone ios uibutton title

我在滚动视图中有几个UIButton,我用它来传递某些信息。信息保存在每个uibutton的标题中,单击该按钮时,它会将其标题传递给该函数。

我想要做的就是隐藏按钮的标题,这样你就看不到按钮了。我把它们叠加在我用来显示按钮的图像上。我将文本设置为透明,但在单击时仍然会变为白色。

如果您在解释中包含代码,请说明它应该去哪里。

12 个答案:

答案 0 :(得分:27)

在IOS7之后,如果你想隐藏一个按钮的titleLabel上的标题,你可以按照以下步骤操作。这样标题仍然存在,只是让它看不见。如果您使用NSLog("%@",button.currentTitle),您将在终端中看到标题。希望这可以帮助。

[button setTitle:@"Button Title" forState:UIControlStateNormal];
button.titleLabel.layer.opacity = 0.0f;

答案 1 :(得分:11)

使用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];

答案 2 :(得分:10)

我发现只有一种正确的工作方式:

//hide
yourButton.setTitleColor(UIColor.clearColor(), forState: .Normal)

//show (put your color)
yourButton.setTitleColor(UIColor.blackColor(), forState: .Normal)

答案 3 :(得分:4)

您可以隐藏按钮内的标签:

button.titleLabel.hidden=YES;

或将按钮的标题设置为@“”,并在想要检索时将值保存在其他位置。

答案 4 :(得分:3)

我创建了一个UIButton的子类并覆盖Frame方法。隐藏layoutSubviews方法中的titleLabel。

layoutSubviews

如果想隐藏titleLabel,只需设置public class LoadingButton: UIButton { public var isTitleHidden: Bool = false { didSet { titleLabel?.isHidden = isTitleHidden } } public override func layoutSubviews() { super.layoutSubviews() titleLabel?.isHidden = isTitleHidden } }

即可

答案 5 :(得分:1)

要隐藏临时标题,只需将标题设置为空字符串

setTitle("", for: .normal)

按钮标题标签将被隐藏,但标题仍将在titleLabel 中,您可以使用

将其返回
setTitle(titleLabel?.text, for: .normal)

答案 6 :(得分:0)

我在标题上遇到了问题,因为使用了归因标题,但以上内容无济于事。然后我找到了解决方法:

button.titleEdgeInsets = .init(top: 0, left: shouldHide ? 1000 : 0, bottom: 0, right: 0)

但是它有一些缺点,但是符合我的需求。

答案 7 :(得分:0)

我想出了这个解决方案,它允许您设置标题标签文本并将其与按钮图像一起使用,而无需显示它,也不会将按钮图像向左移动。

- (void)hideButtonLabel:(UIButton*)buttonInp {

    buttonInp.titleLabel.layer.opacity = 0.0f;
    uttonInp.titleLabel.font = [UIFont fontWithName:@"Helvetica-Light" size:0.0];

}

答案 8 :(得分:0)

我无法从titleLabel或整个视图中删除标题,因为我需要约束。

我最终使用了

isEnabled = false
titleLabel?.layer.opacity = 0
setTitleColor(.clear, for: .disabled)

隐藏标题和

isEnabled = true
titleLabel?.layer.opacity = 1
setTitleColor(titleColor(for: .normal), for: .disabled)

再次显示

答案 9 :(得分:0)

如果要在禁用按钮的同时暂时隐藏标题,请使用:

setTitle("Title", for: .normal)
setTitle("", for: .disabled)

然后,button.isEnabled = false,当您要隐藏标题时。

答案 10 :(得分:0)

您无法使用UIButton属性隐藏titleLabel .hidden。相反,您可以执行此操作。

隐藏:

[self.yourButton setTitle:nil forState:UIControlStateNormal];

显示:

[self.yourButton setTitle:@"Your Text" forState:UIControlStateNormal];

答案 11 :(得分:0)

在Swift中-

您不需要隐藏,也不需要将不透明度设为0.0。 Swift为您提供了一种更简单的方法。 只需将标题设置为nil即可。实际上,我从文档中得到了这个主意。

命令单击setTitle(_:for:)方法,您将看到-

open func setTitle(_ title: String?, for state: UIControl.State) // default is nil. title is assumed to be single line 

所以,我将其设置为nil。

setTitle(nil, for: .normal)