2010-03-04 13 views
7

Tengo dificultades para crear una interfaz de usuario de RTL en una aplicación de iPhone. El marco no parece tener ningún soporte para los lenguajes RTL. Lo único es la alineación dentro de las etiquetas, lo que es bueno, pero entra en conflicto con el comportamiento de otros controles.Interfaz de usuario de derecha a izquierda en iPhone (en hebreo)

La pregunta es: ¿Hay un código de trabajo para un RTL TableView? ¿Algo que manejaría los botones de divulgación para estar a la izquierda, los títulos de las secciones alineados a la derecha, la vista de índice para alinearse a la izquierda?

Por lo que yo entiendo que no puedo mover la vista del índice de la tableview, tengo que superponer un poco de control personalizado ...

Cualquier sugerencia/punteros/ejemplos?

p.s. esto no es una duplicación de esta pregunta: Right to Left Alignment for UITableView ya que lo que estoy buscando es una personalización más profunda, no solo un nuevo tipo de CellView.

(Actualización: mar 10) Por ahora - He quitado el apoyo a indexView del tableView en absoluto, implementa las células como vistas personalizadas por mí mismo (con los botones de divulgación a la izquierda), y personalizado el encabezado/pie de página la mesa también lo único que queda es el Index View.

+0

Escribí un entrenador de vocabulario hebreo para el iPhone y hasta iPhone OS 3 tuve que pasar las cuerdas antes de que las mostrara. Desde 3.0 no he tenido problemas con el script RTL, pero solo estoy usando los controles más básicos. –

Respuesta

1

No creo que hay una manera "correcta" de hacer esto, pero aquí es una solución:

Dentro de la vista, crear un UIView y añadir un UITableView a ella. Agregue UIView como subvista de su vista "maestra" y especifique que sus límites estén fuera del lado izquierdo de la pantalla, de modo que todos, excepto los índices, estén recortados por la vista "maestra". Ahora todo lo que tiene que hacer es agregar un poco de código para sincronizar las dos tablas cuando se toca un índice de la subvista.

Obviamente esta no es la mejor solución, pero es una que podría funcionar.

Buena suerte.

+0

tiene razón, esta parece ser la solución (aunque es una pena que tenga que ensuciarse y ensuciarse para obtenerla). ¿hay alguna posibilidad de que haya visto esto implementado en algún lugar y pueda compartir un fragmento de código? – reflog

0

Creo que la subclase UITableViewCell para obtener el comportamiento que buscas es la forma de evitar esto. Es bastante trivial hacer esto.

Sin embargo, no estoy muy seguro de cómo reaccionaría Apple en términos de aprobación de la aplicación para la AppStore. Tienen directrices de interfaz de usuario bastante estrictas que establecen que el accesorio en una celda de tabla está en el lado derecho de cada celda ... pero estoy seguro de que serían razonables con esto dado su requisito.

+0

Gracias, pero esa no es realmente una respuesta a la pregunta, como se puede ver ya subclasé el 'TableCell', yo estaba preguntando acerca de' IndexView'. – reflog

0

No tengo experiencia con el texto de derecha a izquierda, pero ¿ha intentado ajustar la alineación del texto a la derecha?

[cell.textLabel setTextAlignment:UITextAlignmentRight]; 
4

Teniendo en cuenta que las aplicaciones integradas no voltear su diseño cuando se cambia el idioma de la interfaz de usuario con el hebreo, creo que no debe hacerlo tampoco. Si su aplicación utiliza un diseño RTL mientras que todas las demás aplicaciones usan un diseño LTR, esto puede ser bastante confuso.

Quizás Apple mejore su soporte de RTL algún día. Si se apega a los controles estándar, probablemente obtendrá la mayoría de estas mejoras de forma gratuita.

Cuestiones relacionadas