how to append Attributed Text String with Attributed String in Swift

后端 未结 4 1267
天涯浪人
天涯浪人 2021-01-31 01:52

I want to append an Attributed Text with another Attributed Text in Swift. Please provide any sample code for appending operation of two attributed String in Swift.

相关标签:
4条回答
  • 2021-01-31 02:29

    using extension,

    extension NSMutableAttributedString{
        func getAttributedStringByAppending(attributedString:NSMutableAttributedString) -> NSMutableAttributedString{
            let newAttributedString = NSMutableAttributedString()
            newAttributedString.append(self)
            newAttributedString.append(attributedString)
            return newAttributedString
        }
    }
    

    Usage: attributedString1, attributedString2 are two NSMutableAttributedString, then

    let combinedAttributedString = attributedString1.getAttributedStringByAppending(attributedString: attributedString2)
    
    0 讨论(0)
  • 2021-01-31 02:31

    Swift 5

    As per "glace" answer, I just update font attribute and swift version.

        let boldFontAttributes = [NSAttributedString.Key.foregroundColor: UIColor.black, NSAttributedString.Key.font: UIFont.boldSystemFont(ofSize: 17)]
        let normalFontAttributes = [NSAttributedString.Key.foregroundColor: UIColor.darkGray, NSAttributedString.Key.font: UIFont.systemFont(ofSize: 15)]
        let partOne = NSMutableAttributedString(string: "This is an example ", attributes: boldFontAttributes)
        let partTwo = NSMutableAttributedString(string: "for the combination of Attributed String!", attributes: normalFontAttributes)
    
        let combination = NSMutableAttributedString()
        
        combination.append(partOne)
        combination.append(partTwo)
        lblUserName.attributedText = combination
    
    0 讨论(0)
  • 2021-01-31 02:35

    @glace's answer, modified to avoid empty NSMutableAttributedString declaration. Valid in Swift 3.1:

    let yourAttributes = [NSForegroundColorAttributeName: UIColor.blackColor(), NSFontAttributeName: UIFont.systemFontOfSize(15)]
    let yourOtherAttributes = [NSForegroundColorAttributeName: UIColor.redColor(), NSFontAttributeName: UIFont.systemFontOfSize(25)]
    
    let partOne = NSMutableAttributedString(string: "This is an example ", attributes: yourAttributes)
    let partTwo = NSMutableAttributedString(string: "for the combination of Attributed String!", attributes: yourOtherAttributes)
    
    partOne.append(partTwo)
    

    partOne is then your final string with all the attributes. No intermediate "combiner" necessary.

    Swift 4

    let yourAttributes: [NSAttributedString.Key: Any] = [.foregroundColor: UIColor.black, .font: UIFont.systemFont(ofSize: 15)]
    let yourOtherAttributes: [NSAttributedString.Key: Any] = [.foregroundColor: UIColor.red, .font: UIFont.systemFont(ofSize: 25)]
    
    let partOne = NSMutableAttributedString(string: "This is an example ", attributes: yourAttributes)
    let partTwo = NSMutableAttributedString(string: "for the combination of Attributed String!", attributes: yourOtherAttributes)
    
    partOne.append(partTwo)
    
    0 讨论(0)
  • 2021-01-31 02:42

    Use NSMutableAttributedString

    Small example

    let yourAttributes = [NSForegroundColorAttributeName: UIColor.blackColor(), NSFontAttributeName: UIFont.systemFontOfSize(15)]
    let yourOtherAttributes = [NSForegroundColorAttributeName: UIColor.redColor(), NSFontAttributeName: UIFont.systemFontOfSize(25)]
    
    let partOne = NSMutableAttributedString(string: "This is an example ", attributes: yourAttributes)
    let partTwo = NSMutableAttributedString(string: "for the combination of Attributed String!", attributes: yourOtherAttributes)
    
    let combination = NSMutableAttributedString()
    
    combination.appendAttributedString(partOne)
    combination.appendAttributedString(partTwo) 
    

    Swift 3

    let yourAttributes = [NSForegroundColorAttributeName: UIColor.black, NSFontAttributeName: UIFont.systemFont(ofSize: 15)]
    let yourOtherAttributes = [NSForegroundColorAttributeName: UIColor.red, NSFontAttributeName: UIFont.systemFont(ofSize: 25)]
    
    let partOne = NSMutableAttributedString(string: "This is an example ", attributes: yourAttributes)
    let partTwo = NSMutableAttributedString(string: "for the combination of Attributed String!", attributes: yourOtherAttributes)
    
    let combination = NSMutableAttributedString()
    
    combination.append(partOne)
    combination.append(partTwo)
    

    combination represents your final string which contains both formattings provided by yourAttributes and yourOtherAttributes

    0 讨论(0)
提交回复
热议问题