Ios UILabel can';不要混合删除线和非删除线样式?

Ios UILabel can';不要混合删除线和非删除线样式?,ios,uilabel,ios10,nsattributedstring,ios10.3,Ios,Uilabel,Ios10,Nsattributedstring,Ios10.3,我想在UILabel中显示一个字符串,其中一部分具有删除线样式。似乎我不能将删除线属性仅放在字符串的一部分上。如果是在整个字符串上,则显示;但是,如果它位于字符串的一部分,则不会。这是虫子吗?我错过什么了吗 下面是一些示例代码和屏幕截图 class ViewController: UIViewController { @IBOutlet weak var label1: UILabel! @IBOutlet weak var label2: UILabel! over

我想在
UILabel
中显示一个字符串,其中一部分具有删除线样式。似乎我不能将删除线属性仅放在字符串的一部分上。如果是在整个字符串上,则显示;但是,如果它位于字符串的一部分,则不会。这是虫子吗?我错过什么了吗

下面是一些示例代码和屏幕截图

class ViewController: UIViewController {

    @IBOutlet weak var label1: UILabel!
    @IBOutlet weak var label2: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()

        let strikeAttrs = [NSStrikethroughStyleAttributeName: 
                           NSUnderlineStyle.styleSingle.rawValue]

        let str1 = NSMutableAttributedString()
        str1.append(NSAttributedString(string: "aaa", attributes: strikeAttrs))

        let str2 = NSMutableAttributedString()
        str2.append(NSAttributedString(string: "aaa", attributes: nil))
        str2.append(NSAttributedString(string: "bbb", attributes: strikeAttrs))

        label1.attributedText = str1
        label2.attributedText = str2
    }

}
屏幕如下所示:


Hii Rob,您的代码在Meth方面工作得非常完美。所附的代码似乎给出了预期的正确输出。你试过设备了吗?我的设备给出的结果与模拟器屏幕截图相同。它也运行10.3。让我看看是否可以找到其他版本的iOS进行测试。你们使用的是什么版本的iOS?是的,iOS 9.3模拟器在第二个字符串的“bbb”部分正确地画出了删除线。这是iOS 10.3中的一个错误,另请参见:Hii Rob,您的代码工作正常。所附的代码似乎给出了预期的正确输出。你试过设备了吗?我的设备给出的结果与模拟器屏幕截图相同。它也运行10.3。让我看看是否可以找到其他版本的iOS进行测试。你们使用的是什么版本的iOS?是的,iOS 9.3模拟器在第二个字符串的“bbb”部分正确地画出了删除线。这是iOS 10.3中的一个错误,请参见此处: