Пользовательский интерфейс справа налево в iPhone (иврит) - PullRequest
7 голосов
/ 04 марта 2010

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

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

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

Есть предложения / указатели / примеры?

p.s. это не дублирование этого вопроса: Выравнивание справа налево для UITableView поскольку мне нужна более глубокая настройка, а не просто новый тип CellView.

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

Ответы [ 4 ]

4 голосов
/ 13 марта 2010

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

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

1 голос
/ 11 марта 2010

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

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

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

Удачи.

0 голосов
/ 13 марта 2010

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

[cell.textLabel setTextAlignment:UITextAlignmentRight];
0 голосов
/ 10 марта 2010

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

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

...