2010-03-04 6 views
7

Ich habe Schwierigkeiten, eine RTL-Benutzeroberfläche in iPhone-Anwendung zu erstellen. Das Framework scheint RTL-Sprachen nicht zu unterstützen. Die einzige Sache ist die Ausrichtung innerhalb der Etiketten, die schön ist, aber es widerspricht anderen Verhalten der Steuerelemente. Die Frage ist Gibt es einen Arbeitscode für ein RTL TableView? Etwas, das die Offenlegungstasten auf der linken Seite, Abschnitt Titel rechts ausgerichtet, Index-Ansicht links ausgerichtet würde?Von rechts nach links UI in iPhone (Hebräisch)

Soweit ich verstehe ich nicht, den Index Ansicht des Tableview bewegen kann, ich habe einige benutzerdefinierte Steuerung zu überlagern ...

Irgendwelche Vorschläge/Zeiger/Beispiele?

p.s. Dies ist keine Verdoppelung dieser Frage: Right to Left Alignment for UITableView seit was ich suche ist eine tiefere Anpassung, nicht nur eine neue Art von CellView.

(Update: 10. März) Für jetzt - ich Unterstützung für indexView vom tableView überhaupt entfernt habe, implementiert, um die Zellen als benutzerdefinierte Ansichten von mir (mit Offenlegung Tasten auf der linken Seite) und angepasst die Kopfzeile/Fußzeile der Tisch auch. Das einzige, was übrig bleibt, ist die Index View.

+0

Ich schrieb einen hebräischen Vokabeltrainer für das iPhone und bis iPhone OS 3 musste ich die Saiten drehen, bevor ich sie anzeigte. Seit 3.0 hatte ich keine Probleme mit dem RTL-Skript, aber ich verwende nur die einfachsten Steuerelemente. –

Antwort

1

Ich glaube nicht, dass es eine „richtige“ Art und Weise, dies zu tun, aber hier ist eine Lösung:

Innerhalb der Ansicht, eine UIView zu erstellen und eine UITableView, um es hinzuzufügen. Fügen Sie die UIView als Unteransicht Ihrer "Master" -Ansicht hinzu und legen Sie ihre Grenzen so fest, dass sie nicht auf der linken Seite des Bildschirms liegen, sodass alle außer den Indizes von der "Master" -Ansicht abgeschnitten werden. Jetzt müssen Sie lediglich ein wenig Code hinzufügen, um die beiden Tabellen zu synchronisieren, wenn ein Index aus der Unteransicht berührt wird.

Offensichtlich ist dies nicht die beste Lösung, aber es ist eine, die funktionieren könnte.

Viel Glück.

+0

Sie haben Recht, dies scheint die Lösung zu sein (obwohl es eine Schande ist, dass Sie sich schmutzig machen müssen, um es zu bekommen). jede Chance, die Sie sah dies irgendwo implementiert und kann ein Stück Code teilen? – reflog

0

Ich denke, die Unterklasse UITableViewCell, um das Verhalten, das Sie suchen, ist der Weg um dies. Es ist ziemlich trivial, dies zu tun.

Allerdings bin ich nicht ganz sicher, wie Apple in Bezug auf die Genehmigung der Anwendung für den AppStore reagieren würde. Sie haben recht strenge Benutzerschnittstellen-Richtlinien, die angeben, dass das Zubehör in einer Tabellenzelle auf der rechten Seite jeder Zelle ist ... aber ich bin mir sicher, dass sie mit dieser gegebenen Anforderung vernünftig wären.

+0

Danke, aber das ist nicht wirklich eine Antwort auf die Frage, wie Sie sehen, ich habe bereits die 'TableCell' Unterklasse, ich fragte nach' IndexView'. – reflog

0

Ich habe keine Erfahrung mit rechts-nach-links-Text, aber haben Sie versucht, die Textausrichtung richtig einzustellen?

[cell.textLabel setTextAlignment:UITextAlignmentRight]; 
4

Da die integrierten Apps spiegeln nicht ihr Layout, wenn Sie die Sprache der Benutzeroberfläche auf Hebräisch zu wechseln, ich glaube, Sie es auch nicht tun sollen. Wenn Ihre App ein RTL-Layout verwendet, während alle anderen Apps ein LTR-Layout verwenden, kann dies sehr verwirrend sein.

Vielleicht wird Apple eines Tages seine RTL-Unterstützung verbessern. Wenn Sie sich an Standardsteuerelemente halten, werden Sie die meisten dieser Verbesserungen wahrscheinlich kostenlos erhalten.

Verwandte Themen