2010-03-04 2 views
7

Я изо всех сил пытаюсь создать интерфейс RTL в приложении iPhone. Структура, похоже, не поддерживает языков RTL. Единственное, что нужно, это выравнивание внутри ярлыков, что приятно, но оно противоречит поведению других элементов управления.Право на левый интерфейс в iPhone (иврит)

Вопрос: Есть ли рабочий код для RTL TableView? Что-то, что обрабатывало бы кнопки раскрытия слева, названия разделов были бы выровнены по правому краю, индексный указатель был бы выровнен по левому краю?

Насколько я понимаю, что я не могу переместить вид индекса в Tableview, я должен наложить некоторые пользовательский элемент управления ...

Любые предложения/указатели/примеры?

p.s. это не дублирование этого вопроса: Right to Left Alignment for UITableView , поскольку я ищу более глубокую настройку, а не только новый тип CellView.

(Update: 10 марта) На данный момент - я удалил поддержку indexView из tableView на всех, реализуемый клетки, как пользовательские представления самостоятельно (с помощью кнопок раскрытия информации на левой стороне), и настроить заголовок/нижний колонтитулы таблицу также. единственное, что осталось, это Index View.

+0

Я написал учебник для икры на иврите для iPhone и до iPhone OS 3 Мне пришлось перевернуть строки, прежде чем я их отобразил. Начиная с версии 3.0 у меня не было проблем с RTL-скриптом, но тогда я использую только самые основные элементы управления. –

ответ

1

Я не верю, что есть «правильный» способ сделать это, но вот одно решение:

В представлении, создать UIView и добавить к нему UITableView. Добавьте UIView в качестве подвид вашего представления «мастер» и укажите его границы в левой части экрана, чтобы все, кроме индексов, были обрезаны «основным» представлением. Теперь все, что вам нужно сделать, это добавить немного кода для синхронизации двух таблиц, когда будет затронут индекс из подвью.

Очевидно, что это не лучшее решение, но оно может работать.

Удачи.

+0

Вы правы, это похоже на решение (хотя стыдно, что вам нужно спуститься и грязно, чтобы получить его). любой шанс, что вы видели, что это реализовано где-то и может поделиться куском кода? – reflog

0

Я думаю, что подклассы UITableViewCell, чтобы получить поведение, за которым вы находитесь, - это путь вокруг этого. Это довольно тривиально.

Однако я не совсем уверен, как Apple отреагирует на одобрение приложения для AppStore. У них довольно строгие правила пользовательского интерфейса, в которых говорится, что аксессуар в ячейке таблицы находится справа от каждой ячейки ... но я уверен, что они были бы разумными с учетом вашего требования.

+0

Спасибо, но на самом деле это не ответ на вопрос, так как вы можете видеть, что я уже занимался подклассом «TableCell», я спрашивал о «IndexView». – reflog

0

У меня нет опыта с текстом справа налево, но вы пытались установить выравнивание текста вправо?

[cell.textLabel setTextAlignment:UITextAlignmentRight]; 
4

Учитывая, что встроенные приложения не переворачивать их расположение при переключении языка интерфейса на иврите, я думаю, вы не должны делать это либо. Если ваше приложение использует макет RTL, а все остальные приложения используют макет LTR, это может быть довольно запутанным.

Возможно, Apple однажды улучшит поддержку RTL. Если вы придерживаетесь стандартных элементов управления, вы, вероятно, получите большинство этих улучшений бесплатно.

Смежные вопросы