答案 0 :(得分:0)
您可以添加以下代码:
let attributeString: NSMutableAttributedString = NSMutableAttributedString(string: "Your Text")
attributeString.addAttribute(NSAttributedStringKey.strikethroughStyle, value: 2, range: NSMakeRange(0, attributeString.length))
self.label.attributedText = attributeString
输出:
希望这有帮助。
根据您的代码,您希望在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
。确保勾选,如果没有,则勾选它,它将完美地工作。
答案 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
}
}
}
}
这将确保标签中的所有文本默认为删除
答案 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
}