如何在onclick事件后隐藏UIButton标题

时间:2010-08-20 22:49:34

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

单击按钮时,其标题应隐藏。我不想将标题设置为空字符串@“”。那么,我该怎么做呢?

9 个答案:

答案 0 :(得分:4)

我现在正在使用的更好的解决方案:

如果我需要,接受的答案不允许我重复使用该名称,所以我正在以这种方式使用:

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

我认为最好只保持按钮的标签不可见。

答案 1 :(得分:2)

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

在你的.h:

NSString *someLocalField;
你的.m中的

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

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

someButton.text = someLocalField

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

答案 2 :(得分:2)

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

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

如果您希望它在显示与否之间切换,

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

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

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

答案 3 :(得分:1)

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

答案 4 :(得分:1)

// Hide text
button.titleLabel.layer.opacity = 0.0f;

// Show text
button.titleLabel.layer.opacity = 1.0f;

答案 5 :(得分:0)

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

答案 6 :(得分:0)

我猜here您可以找到解决方案,只需将包含文字的标签隐藏起来。

button.titleLabel.hidden = YES;

你可以将它放在InterfaceBuilder中链接的IBAction中,与你的按钮关联的Touch Inside Up事件

答案 7 :(得分:0)

您是否尝试过button.titleLabel.hidden = YES

答案 8 :(得分:0)

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