             ownAttributes: ownAttributes,
             range: range,
             preserveFont: preserveFont,
-            preserveColor: preserveColor)
+            preserveColor: preserveColor,
+            preserveAlignment: preserveAlignment)
     }
 }
 

        ownAttributes: [String : AnyObject]? = nil,
        range: NSRange? = nil,
        preserveFont: Bool = true,
        preserveColor: Bool = true)
    {
        var attrs = ownAttributes ?? [:]
        
        // Set font if needed
        if preserveFont && attrs[NSFontAttributeName] == nil {

     - parameter text:             The text to set
     - parameter characterSpacing: =0; Amount of character spacing. Ignored if == 0
     - parameter lineSpacing:      =0; Amount of line spacing. Ignored if == 0
     - parameter preserveAlignment:=true; If alignment should be preserved after setting attributedText
     - parameter ownAttributes:    =nil; Add your own attributes to the text. Ignored if == nil
     - parameter range:            ={0, text.length}; Range of the string to set attributes to.
     */
    public func setTextWithSpacing(text: String?,
        characterSpacing: CGFloat = 0,
        lineSpacing: CGFloat = 0,
        preserveAlignment: Bool = true,
        ownAttributes: [String : AnyObject]? = nil,
        range: NSRange? = nil)
    {
        let alignment = self.textAlignment
        
        // Assign text
        self.attributedText = _attributedSpacingString(text, characterSpacing: characterSpacing, lineSpacing: lineSpacing, ownAttributes: ownAttributes, range: range)
        
        // Set alignment if needed
        if preserveAlignment {
            self.textAlignment = alignment
        }
    }
    
    /// self.setTextWithSpacing with own text
    public func setSpacing(characterSpacing characterSpacing: CGFloat = 0,
        lineSpacing: CGFloat = 0,
        preserveAlignment: Bool = true,
        ownAttributes: [String : AnyObject]? = nil,
        range: NSRange? = nil)
    {
