Пользовательский интерфейс справа налево в iPhone (иврит)

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

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

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

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

ps это не дублирование этого вопроса: Выравнивание справа налево для UITableView поскольку я ищу более глубокую настройку, а не просто новый тип CellView.

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

7
задан Community 23 May 2017 в 12:29
поделиться

4 ответа

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

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

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

Удачи.

1
ответ дан 7 December 2019 в 12:19
поделиться

Я думаю, что подкласс UITableViewCell для получения желаемого поведения - это способ обойти это. Сделать это довольно тривиально.

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

0
ответ дан 7 December 2019 в 12:19
поделиться

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

[cell.textLabel setTextAlignment:UITextAlignmentRight];
0
ответ дан 7 December 2019 в 12:19
поделиться

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

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

4
ответ дан 7 December 2019 в 12:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: