ios7 uitextview multilingual right-to-left custom-font
mi código de prueba

ios7 - UITextView representa una fuente personalizada incorrectamente en iOS 7



multilingual right-to-left (2)

Depilé un poco este problema, y ​​parece ser un error en la forma en que NSLayoutManager el texto. Como señalaron otras respuestas, UITextView se basa en TextKit desde iOS7 y, por lo tanto, utiliza NSLayoutManager internamente en el texto del diseño. UILabel utiliza Core Text para diseñar texto directamente. Ambos utilizan eventualmente el Texto central para representar los glifos.

Debería abrir un informe de error con Apple y publicar el número para que la gente pueda duplicarlo. El problema no se ha solucionado hasta el momento en las versiones beta de iOS7.1.

Como solución alternativa, puede reemplazar UITextView con otros editores alternativos de Texto principal, que se distribuyen y procesan directamente con Texto principal, donde el problema no existe.

SECoreTextView , y muestra el texto correctamente. Implementa una API similar a UITextView pero internamente utiliza Core Text.

Así es como se ve después de intercambiar UITextView con SECoreTextView :

SETextView *textView = [[SETextView alloc] initWithFrame:CGRectMake(0, 0, 100, 40)]; textView.center = CGPointMake(self.view.center.x, self.view.center.y+40); textView.font = [UIFont fontWithDescriptor:desc size:24]; textView.text = @"ܩ̈ ܡ̄ ܬ̇ ܒ̃"; textView.textColor = [UIColor blackColor]; textView.backgroundColor = [UIColor whiteColor]; textView.editable = YES; [self.view addSubview:textView];

Mi aplicación usa una UITextView para ingresar texto en siríaco (fuente de Estrangelo), pero UITextView presenta algunas letras incorrectamente de esta manera:

Lo probé con UILabel y una UITextView. UILabel lo muestra correctamente, pero UITextView muestra incorrectamente los puntos superiores y los mueve hacia la parte inferior (consulte el resultado anterior).

Este problema solo ocurre en iOS 7 y no ocurre en iOS 6. Dígame si hay alguna forma de solucionar el problema.

Este es mi código de prueba

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 40)]; label.center = CGPointMake(self.view.center.x, self.view.center.y-40); label.font = [UIFont fontWithName:@"East Syriac Adiabene" size:24]; label.text = @"ܩ̈ ܡ̄ ܬ̇ ܒ̃"; [self.view addSubview:label]; UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, 100, 40)]; textView.center = CGPointMake(self.view.center.x, self.view.center.y+40); textView.font = [UIFont fontWithName:@"East Syriac Adiabene" size:24]; textView.text = @"ܩ̈ ܡ̄ ܬ̇ ܒ̃"; [self.view addSubview:textView];


Hace algunos días, tuve el mismo problema que el tuyo en iOS 7 (pero la fuente era diferente) . Configuré FONT después de configurar el TEXTO y funcionó para mí. Entonces para tu caso:

textView.text = @"ܩ̈ ܡ̄ ܬ̇ ܒ̃"; // Setting the text. textView.font = [UIFont fontWithName:@"East Syriac Adiabene" size:24]; // Setting the font and it''s size.

Puede parecer tonto, pero funcionó para mí.

También vea esta pregunta / respuesta . Hay muchos consejos para usar fuentes personalizadas con UITextView , que pueden ser útiles para usted.

EDITAR:

iOS 7 también introdujo una nueva propiedad selectable en el UITextView para permitir la selección de texto. Así que asegúrate de haber hecho lo siguiente:

self.textField.editable = YES; self.textField.selectable = ON;