gpt4 book ai didi

swift - StrikeThrough 属性与 iOS 13 不兼容

转载 作者:行者123 更新时间:2023-11-30 10:35:32 24 4
gpt4 key购买 nike

我使用了这个String扩展来将strikeThrough添加到文本

这是扩展名:

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

这是我如何使用UILabel:

     if isDone {
self.title?.attributedText = title.strikeThrough()
} else {
self.title?.attributedText = nil
self.title?.text = title
}

它在 iOS 12 中运行良好,但在 iOS 13 中,self.title?.attributedText = nil 不会删除 StrikeThrough 行。在我的应用程序中,当在文本上添加删除线时,它将从列表中删除,但现在,它被删除,但删除线将出现在其他文本上,这是不应该发生的。还有 self 标题?也不为零。

您能否建议我任何从文本中删除 strikeThrough 的方法,当前带有 nil 的表单不起作用。

非常感谢

最佳答案

在我不想再显示它的情况下,我通过将值设置为 0 来使其工作。

let attributeString: NSMutableAttributedString =  NSMutableAttributedString(string: weightString)

//HACK we have to set strikethrough to 0 for ios 13 or it won't remove the strike even if setting the attributed text to nil

attributeString.addAttribute(NSAttributedString.Key.strikethroughStyle, value: 0, range: NSMakeRange(0, attributeString.length))

cell.weightLabel.attributedText = attributeString))

关于swift - StrikeThrough 属性与 iOS 13 不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58142205/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com