Haga que el text de UILabel esté alineado a la derecha si el text está en árabe

He implementado la localización de idiomas en mi aplicación iOS. Entonces, ahora el usuario puede configurar el idioma árabe en mi aplicación iPad.

Recibo la respuesta de cadena localizada del server y ahora quiero establecer esta cadena localizada en mi UILabel en formatting de derecha a izquierda con alignment derecha .

Actualización:

La respuesta de mi server ya está en formatting RTL. Ahora, solo quería configurar la alignment del text a la derecha cuando tengo text en árabe en mi UILabel .

En este momento tengo que escribir código para configurar la alignment de UILabel function del idioma.

Por lo tanto, solo quiero saber si hay alguna propiedad disponible para UILabel al establecer qué puedo hacer que el text de UILabel alineado a la derecha en el caso del idioma árabe.

Visualice el text normalmente como lo hace en inglés si recibe un text árabe del server sin necesidad de alinearlo. Simplemente alinea el text.

¿Has intentado esto?

  [[self label] setTextAlignment:NSTextAlignmentNatural]; 

AutoLayout + RTL + alignment de text UILabel

Espero que esto solucione tu problema.

Haga su label de text todo el ancho de la vista. Luego, el text se alineará correctamente desde el lado derecho de la pantalla.

Para Swift3 // MARK: extensión UILabel

 extension UILabel { func decideTextDirection () { let tagScheme = [NSLinguisticTagSchemeLanguage] let tagger = NSLinguisticTagger(tagSchemes: tagScheme, options: 0) tagger.string = self.text let lang = tagger.tag(at: 0, scheme: NSLinguisticTagSchemeLanguage, tokenRange: nil, sentenceRange: nil) if lang?.range(of:"ar") != nil { self.textAlignment = NSTextAlignment.right } else { self.textAlignment = NSTextAlignment.left } } 

Para usar este complemento, siga con su label:

 detailLabel.text = details[0] detailLabel.decideTextDirection()