我在滚动视图中有几个UIButton,我用它来传递某些信息。信息保存在每个uibutton的标题中,单击该按钮时,它会将其标题传递给该函数。
我想要做的就是隐藏按钮的标题,这样你就看不到按钮了。我把它们叠加在我用来显示按钮的图像上。我将文本设置为透明,但在单击时仍然会变为白色。
如果您在解释中包含代码,请说明它应该去哪里。
答案 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)