如何通过 UIButton 创建罢工?

Posted

技术标签:

【中文标题】如何通过 UIButton 创建罢工?【英文标题】:How to create a strike through UIButton? 【发布时间】:2015-01-14 11:02:55 【问题描述】:

是否可以在不使用图像的情况下创建带有删除线的按钮?

我知道 UILabel 可以这样做

NSMutableAttributedString *attributeString = [[NSMutableAttributedString alloc] initWithString:@"Your String here"];
[attributeString addAttribute:NSStrikethroughStyleAttributeName
                        value:@2
                        range:NSMakeRange(0, [attributeString length])];

【问题讨论】:

- [UIButton setAttributedTitle:forState:] 【参考方案1】:

您需要使用setAttributedTitle:forState: 传递您创建的属性字符串来设置按钮的标题。

【讨论】:

【参考方案2】:

你可以试试

[button setAttributedTitle:attributeString forState:UIControlStateNormal];
[button setAttributedTitle:attributeString forState:UIControlStateHighlighted]

【讨论】:

【参考方案3】:
    let attributes = [NSStrikethroughStyleAttributeName : 1]
    let title = NSAttributedString(string: "YOUR STRING", attributes: attributes)

    button.setAttributedTitle(title, forState: .Normal)

【讨论】:

【参考方案4】:

使用 Strike Through Attribute 创建一个可变属性字符串,并将此属性字符串设置为按钮的属性文本。使用了@grabury question上面的attributeString代码sn-p。

UIButton *button = [UIButton alloc] init];
NSMutableAttributedString *attributeString = [[NSMutableAttributedString alloc] initWithString:@"Your Text Here"];
    [attributeString addAttribute:NSStrikethroughStyleAttributeName
                            value:@2
                            range:NSMakeRange(0, [attributeString length])];
button.titleLabel.attributedText = attributeString;

谢谢。

【讨论】:

以上是关于如何通过 UIButton 创建罢工?的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 UIButton 标题?

用户单击时如何禁用 UIButton 的突出显示

Iphone UIButton 背景颜色

如何将 UIButton 设置为 Touch ID 或 Face ID 图像

UI控件(UIButton)

UIButton 动作