【发布时间】:2010-08-20 22:49:34
【问题描述】:
当我点击一个按钮时,它的标题应该是隐藏的。我不想将标题设置为空字符串@""。那么,我该怎么做呢?
【问题讨论】:
标签: iphone objective-c cocoa-touch ipad uikit
当我点击一个按钮时,它的标题应该是隐藏的。我不想将标题设置为空字符串@""。那么,我该怎么做呢?
【问题讨论】:
标签: iphone objective-c cocoa-touch ipad uikit
我现在正在使用的只是一个更好的解决方案:
接受的答案不允许我在需要时重复使用该名称,因此我以这种方式使用:
-(void)SomeButtonPressed {
someButton.titleLabel.textColor = [UIColor clearColor];
}
我认为最好让按钮的标签不可见。
【讨论】:
为什么不想将标题设置为空字符串?只需将值存储在本地字段中并将按钮的标题设置为@“”,一切都会好起来的。
在您的 .h 中:
NSString *someLocalField;
在你的 .m 中:
-(void)SomeButtonPressed {
someLocalField = someButton.text;
someButton.text = @"";
}
这样,如果您需要恢复按钮的文本,您可以这样做:
someButton.text = someLocalField
如果您想为一堆按钮执行此操作,您始终可以使用 NSDictionary 并将字符串值与按钮相关联。
【讨论】:
如果您希望它在手指放在按钮上时消失,
[button setTitle:@" " forState:UIControlStateHighlighted];
如果你想让它在显示和不显示之间切换,
[button setTitle:@" " forState:UIControlStateSelected];
[button setTitle:@" " forState:UIControlStateSelected|UIControlStateHighlighted];
然后在按钮操作中设置button.selected = !button.selected。
我使用单个空格而不是空字符串,因为有时空字符串具有特殊处理,使其等效于 nil。如果空字符串有效,您可以使用它。
【讨论】:
我没有尝试过,但如果您需要标题文本保持不变,但仍对用户隐藏,您可以将字体颜色设置为 [UIColor clearColor];
【讨论】:
使用 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];
【讨论】:
// Hide text
button.titleLabel.layer.opacity = 0.0f;
// Show text
button.titleLabel.layer.opacity = 1.0f;
【讨论】:
只是隐藏标题听起来有点奇怪,而且不像 Apple 界面。您也可以将按钮设置为隐藏,然后整个事情就消失了。如果您确实希望标题是唯一消失的东西(请记住,按钮仍将在此状态下工作,只是没有标题),那么您始终可以指定背景颜色 someButton.currentTitleColor = someButton.backgroundColor; 应该使文本消失(您可能还需要设置阴影颜色)。
【讨论】:
我猜here你可以找到解决方案,只需将包含文本的标签隐藏即可。
button.titleLabel.hidden = YES;
您可以将它放在一个 IBAction 中,该 IBAction 在 InterfaceBuilder 中链接到与您的按钮关联的 Touch Inside Up 事件
【讨论】:
你试过button.titleLabel.hidden = YES吗?
【讨论】: