是否可以告诉标签文本应该贴上标签?

时间:2018-04-20 05:57:47

标签: ios swift uilabel

我需要添加标签strikethrough.

的所有文字

在html中,这是使用<s> </s>标签完成的。如何在swift中做到这一点?

Photo

3 个答案:

答案 0 :(得分:0)

您可以添加以下代码:

 let attributeString: NSMutableAttributedString =  NSMutableAttributedString(string: "Your Text")
 attributeString.addAttribute(NSAttributedStringKey.strikethroughStyle, value: 2, range: NSMakeRange(0, attributeString.length))
 self.label.attributedText = attributeString

输出:

enter image description here

希望这有帮助。

根据您的代码编辑

根据您的代码,您希望在Tableview标签中显示

所以你可以使用它,

cellForRowAt

中添加此行
let strText = schedule[indexPath.row].discipline
let attributeString: NSMutableAttributedString =  NSMutableAttributedString(string: strText) // Get here the text you want to show in your label
attributeString.addAttribute(NSAttributedStringKey.strikethroughStyle, value: 2, range: NSMakeRange(0, attributeString.length))
cell.dispos.attributedText = attributeString

它会起作用!

编辑在真实设备中不起作用

可能您没有勾选正在使用的任何文件的Target Membership。确保勾选,如果没有,则勾选它,它将完美地工作。

enter image description here

答案 1 :(得分:0)

如果您希望它作为标签的默认值,请创建UILabel的子类。

让我们调用子类MyLabel,所以在MyLabel.swift

class MyLabel: UILabel {
    override internal var text: String? {
        didSet {
            if let text = self.text {
                let attribString = NSMutableAttributedString(string: text)  
                attribString.addAttribute(NSAttributedStringKey.strikethroughStyle,
                                          value: 2,
                                          range: NSRange(location: 0, length: attribString.length))
                self.attributedText = attribString
            }
         }
    }
}

然后在StoryBoard文件或Xib文件中,指定类名: ASSIGNING CLASS TO LABEL IN XIB FILE

这将确保标签中的所有文本默认为删除

答案 2 :(得分:0)

    private func getStrikeThroughTextFor(_ text:String) -> 
    NSMutableAttributedString {
      let attributeString =  NSMutableAttributedString(string: text)
      let attributes : [NSAttributedStringKey: Any] = [.baselineOffset:0,
                                                     .strikethroughStyle:2]
      attributeString.addAttributes(attributes, range: NSMakeRange(0, 
        attributeString.length))
      return attributeString
  }