¿Hay una forma unicode de hacer que una parte de una cadena esté en negrita?

en cadenas localizables

"rulesText" = "No illegal posting! \n No weird stuff! \n There is no tolerance for objectionable content, they will be removed!"; 

¿Puedo hacer parte de este atrevido? Me gusta No hay cosas raras! o algo en este sentido usando caracteres unicode? ¿O de alguna otra manera?

Lo uso así:

 textView.text = "\n\n " + NSLocalizedString("rulesText", comment: "") 

Una forma más fácil sería utilizar NSMutableAttributedString , mientras se usa en textView.text. Aquí hay un ejemplo:

 NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString: NSLocalizedString("rulesText", comment: "")]; [attrString beginEditing]; [attrString addAttribute:kCTFontAttributeName value:[[UIFont boldSystemFontOfSize:12] fontName] range:NSMakeRange(2, 4)]; // use range as per your character index range [attrString endEditing]; 

Usando esto, los caracteres en negrita que comienzan desde el 2do índice y luego 4 caracteres aparecen automáticamente en negrita. por ejemplo: 1234567890 – 12 3456 7890

Espero que esto ayude.

Para el lenguaje SWIFT:

 let font:UIFont? = UIFont.boldSystemFontOfSize(12.0) myMutableString.addAttribute(NSFontAttributeName, value: font!, range: NSRange(location: 2, length: 4)); 

http://www.raywenderlich.com/77092/text-kit-tutorial-swift

Gracias a la respuesta anterior de Martins edité su solución para que coincida con mi caso y funciona perfectamente.
Eche un vistazo y anote su solución: cree una cadena atribuida de text simple (con formatting de Android) en swift para iOS

Entonces esto básicamente cambia:

 <a>hey</a> to size 14 bold <b>hey</b> to size 12 bold <u>hey</u> to underlined 

Es fácil agregarle más funciones.

 //localizable.strings "rulesText" = "\n\n<a>The following will be removed</a> \n\n<b><u>Harassment</u></b>\n\nOther Stuff" //viewdidload textView.font = UIFont(name: "HelveticaNeue-Light", size: 12) //This is here to set up rest of the texts font textView.attributedText = convertText(NSLocalizedString("rulesText", comment: "")) //method for string conversation func convertText(inputText: String) -> NSAttributedString { var attrString = NSMutableAttributedString(string: inputText) let boldFont = UIFont(name: "Helvetica-Bold", size: 12) let boldBigFont = UIFont(name: "Helvetica-Bold", size: 14) attrString = fixText(attrString, attributeName: NSFontAttributeName, attributeValue: boldFont!, propsIndicator: "<b>", propsEndIndicator: "</b>") attrString = fixText(attrString, attributeName: NSFontAttributeName, attributeValue: boldBigFont!, propsIndicator: "<a>", propsEndIndicator: "</a>") attrString = fixText(attrString, attributeName: NSUnderlineStyleAttributeName, attributeValue: NSUnderlineStyle.StyleDouble.rawValue, propsIndicator: "<u>", propsEndIndicator: "</u>") return attrString } func fixText(inputText:NSMutableAttributedString, attributeName:AnyObject, attributeValue:AnyObject, propsIndicator:String, propsEndIndicator:String)->NSMutableAttributedString{ var r1 = (inputText.string as NSString).rangeOfString(propsIndicator) while r1.location != NSNotFound { let r2 = (inputText.string as NSString).rangeOfString(propsEndIndicator) if r2.location != NSNotFound && r2.location > r1.location { let r3 = NSMakeRange(r1.location + r1.length, r2.location - r1.location - r1.length) inputText.addAttribute(attributeName as String, value: attributeValue, range: r3) inputText.replaceCharactersInRange(r2, withString: "") inputText.replaceCharactersInRange(r1, withString: "") } else { break } r1 = (inputText.string as NSString).rangeOfString(propsIndicator) } return inputText } 

versión funcional en Swift 3. Funciona tanto para Label como para TextView.

  @IBOutlet var theLabel: UILabel! @IBOutlet var theTextview: UITextView! override func viewDidLoad() { super.viewDidLoad() let theString = "Please satisfy three of the following password conditions" as NSString let theAttributedString = NSMutableAttributedString(string: theString as String) let boldString = "three" let boldRange = theString.range(of: boldString) let font = UIFont.boldSystemFont(ofSize: 20) theAttributedString.addAttribute(NSFontAttributeName, value: font, range: boldRange) theLabel.attributedText = theAttributedString theTextview.attributedText = theAttributedString } 

(a partir de 3.1 hay pocos problemas que convierten Range porque el parámetro 'range' en 'addAttribute' sigue siendo NSRange y no Range. Esto se puede resolver tipeando su String a NSString y obteniendo el range 'boldRange'in NSRange

// Objetivo C formatting de los methods Esq en la respuesta anterior para hacer cadenas atribuidas para NSLocalizedString

 -(NSAttributedString* )convertText:(NSString*)inputText { NSMutableAttributedString * attString = [[NSMutableAttributedString alloc] initWithString:inputText]; UIFont *makeBold = [UIFont boldSystemFontOfSize:16]; attString = [self fixText:attString andFont:makeBold andAttributeName:NSFontAttributeName andProsPoseIndicator:@"<b>" adnpropsEndIndicator:@"</b>"]; return attString; } -(NSMutableAttributedString *)fixText:(NSMutableAttributedString *) inputText andFont:(UIFont*)attributeValue andAttributeName: (NSString *)attributeName andProsPoseIndicator: (NSString *)propsIndicator adnpropsEndIndicator: (NSString *)propsEndIndicator{ NSRange r = [inputText.string rangeOfString:propsIndicator]; while (r.location != NSNotFound) { NSRange r2 = [inputText.string rangeOfString:propsEndIndicator]; if (r.location != NSNotFound && r2.location >r.location) { NSRange r3 = NSMakeRange(r.location+r2.length-1, r2.location - r.location - r.length); [inputText addAttribute:attributeName value:attributeValue range:r3]; [inputText replaceCharactersInRange:r2 withString:@""]; [inputText replaceCharactersInRange:r withString:@""]; }else { break; } r = [inputText.string rangeOfString:(propsIndicator)]; } return inputText; }