Swift:标签的删除线样式(标签的中间删除线)

Posted

技术标签:

【中文标题】Swift:标签的删除线样式(标签的中间删除线)【英文标题】:Swift: strikethroughStyle For Label (Middle Delete Line For Label) 【发布时间】:2016-02-22 11:01:46 【问题描述】:

如何为标签添加删除线样式。 UILabel 中数字的中间删除行。检查附件图片以供参考。

【问题讨论】:

你的意思是“删除线”吗? 【参考方案1】:

使用属性字符串

截图

代码

NSDictionary * attribtues = @NSStrikethroughStyleAttributeName:@(NSUnderlineStyleSingle),
                              NSStrikethroughColorAttributeName:[UIColor redColor];
NSAttributedString * attr = [[NSAttributedString alloc] initWithString:@"label" attributes:attribtues];
self.label.attributedText = attr;

【讨论】:

可以在故事板中做到这一点吗? 你有静态文本标签吗?我只是拖一个插座,然后在viewDidLoad中设置? 你不能在 storyborad 中做到这一点,你必须通过代码做到这一点【参考方案2】:

来自@krunal Swift4 答案的更新函数

extension String 
    func strikeThrough() -> NSAttributedString 
        let attributeString =  NSMutableAttributedString(string: self)
        attributeString.addAttribute(NSAttributedString.Key.strikethroughStyle, value: NSUnderlineStyle.single.rawValue, range: NSMakeRange(0,attributeString.length))
        return attributeString
    

和调用函数是一样的

yourLabel.attributedText = "yourString".strikeThrough()

【讨论】:

【参考方案3】:

以编程方式使用下面的代码

更喜欢使用扩展:

extension String 
    func strikeThrough() -> NSAttributedString 
        let attributeString =  NSMutableAttributedString(string: self)
        attributeString.addAttribute(NSAttributedStringKey.strikethroughStyle, value: NSUnderlineStyle.styleSingle.rawValue, range: NSMakeRange(0,attributeString.length))
        return attributeString
    

然后调用这个函数

myLabel.attributedText = "my string".strikeThrough()

结果看起来像这样。

【讨论】:

【参考方案4】:

如果想使用 UILabel 扩展

extension UILabel 
  func strikeThroughText() 
    let attributeString =  NSMutableAttributedString(string: self.text ?? "")
    attributeString.addAttribute(NSAttributedString.Key.strikethroughStyle, value: NSUnderlineStyle.single.rawValue, range: NSMakeRange(0,attributeString.length))
    self.attributedText = attributeString
  

【讨论】:

【参考方案5】:

在情节提要中为 UILabel 添加中间删除行

    在情节提要中点击 uilabel,查看实用程序。选择Attributed

    点击字体图标,打开字体面板。

    选择要更改的文本

    选择中间线(例如:Single)

    已完成。

【讨论】:

在我的标签中不起作用,响应来自 api 响应来自 api 应该以编程方式设置(Leo 的回答)

以上是关于Swift:标签的删除线样式(标签的中间删除线)的主要内容,如果未能解决你的问题,请参考以下文章

HTMLHTML 标签 ③ ( 文本格式化标签 | 加粗 | 斜体 | 下划线 | 删除线 | 标签属性 | 图像标签 | 图像标签属性 )

html中的文本标签

在 Swift SpriteKit 中禁用节点和 FPS 标签

iOS_绘制带删除线的Label

iOS label 添加删除线(删划线)遇到的坑

删除ggplot中的所有x轴标签[重复]