Я изо всех сил пытаюсь создать RTL UI в приложении для iPhone. Фреймворк, похоже, не поддерживает RTL-языки. Единственное, что это - выравнивание внутри меток, это хорошо, но это противоречит поведению других элементов управления.
Вопрос: Есть ли рабочий код для RTL TableView? Что-то, что будет обрабатывать кнопки раскрытия, которые будут слева, заголовки разделов должны быть выровнены по правому краю, индексное представление будет выровнено по левому краю?
Насколько я понимаю, я не могу переместить индексное представление табличного представления, я должен наложить некоторые пользовательский элемент управления ...
Любые предложения / указатели / примеры?
ps это не дублирование этого вопроса: Выравнивание справа налево для UITableView поскольку я ищу более глубокую настройку, а не просто новый тип CellView.
(Обновление: 10 марта) Пока - я удалил поддержку indexView
из tableView
В общем, я сам реализовал ячейки в виде пользовательских представлений (с кнопками раскрытия слева), а также настроил верхний / нижний колонтитулы таблицы. единственное, что осталось, это индексное представление
.
Я не верю, что существует "правильный" способ сделать это, но вот одно из решений:
Внутри представления создайте UIView и добавьте к нему UITableView. Добавьте UIView как вложенное представление к "главному" представлению и укажите его границы за пределами левой части экрана, чтобы все, кроме индексов, было обрезано "главным" представлением. Теперь все, что вам нужно сделать, это добавить немного кода для синхронизации двух таблиц при касании индекса из подвида.
Очевидно, что это не лучшее решение, но оно может сработать.
Удачи.
Я думаю, что подкласс UITableViewCell для получения желаемого поведения - это способ обойти это. Сделать это довольно тривиально.
Однако я не совсем уверен, как Apple отреагирует на одобрение приложения для AppStore. У них есть довольно строгие правила пользовательского интерфейса, в которых указано, что аксессуар в ячейке таблицы находится справа от каждой ячейки ... но я уверен, что они будут разумными с учетом ваших требований.
У меня нет опыта работы с текстом справа налево, но вы пытались установить выравнивание текста по правому краю?
[cell.textLabel setTextAlignment:UITextAlignmentRight];
Учитывая, что встроенные приложения не меняют макет при переключении языка пользовательского интерфейса на иврит, я думаю, вам тоже не стоит этого делать. Если ваше приложение использует макет RTL, в то время как все другие приложения используют макет LTR, это может сбивать с толку.
Возможно, Apple однажды улучшит поддержку RTL. Если вы будете придерживаться стандартных элементов управления, вы, вероятно, получите большинство этих улучшений бесплатно.