Cómo agregar text en UITextView

Tengo un UITextView con properties aleatorias y tamaño aleatorio. Necesito agregar una marca de agua escrita en una UITextView . Pero la marca de agua necesita tener diferentes properties de text y diferentes alineamientos.

Ejemplo:

 This is the UITextView with random properties. This is the watermark. 

NSAttributedString usar cadenas atribuidas ( NSAttributedString ) en lugar de cadenas ( NSString ).

UITextView tiene una propiedad text y una propiedad attributedText . En su caso, use la propiedad attributedText una vez que haya creado la cadena atribuida.

Intente usar la cadena atribuida:

 NSString *textViewText = @"..."; NSString *watermarkText = @"\nThis is the watermark"; NSString *fullText = [textViewText stringByAppendingString:watermarkText]; NSMutableParagraphStyle *watermarkParagraphStyle = [NSMutableParagraphStyle new]; watermarkParagraphStyle.alignment = NSTextAlignmentCenter; NSMutableAttributedString *fullTextAttributed = [[NSMutableAttributedString alloc] initWithString:fullText]; [fullTextAttributed addAttribute:NSParagraphStyleAttributeName value:watermarkParagraphStyle range:[fullText rangeOfString:watermarkText]]; textView.attributedText = fullTextAttributed; 

Aquí hay una traducción del código Objective-C de @ skorolkov:

 let textViewText = "..." let watermarkText = "\nThis is the watermark" let fullText = textViewText + watermarkText let watermarkParagraphStyle = NSMutableParagraphStyle() watermarkParagraphStyle.alignment = NSCenterTextAlignment let fullTextAttributed = NSMutableAttributedString(string: fullText) fullTextAttributed.addAttribute(NSParagraphStyleAttributeName, value: watermarkParagraphStyle, range: fullText.rangeOfString(waterMarkText)) textView.attributedText = fullTextAttributed