2014-11-24 2 views
1

В соответствии с яблоком documentation «iOS автоматически не отображает элементы управления, поэтому, если вы хотите, чтобы это поведение для приложения iOS, подклассифицируйте элемент управления и переопределите методы рисования».Создание права на левый пользовательский интерфейс для iOS

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

Пожалуйста, найдите то, что я сделал до сих пор: Я использую Xcode 6.1 и целевые объекты от iOS 7 до iOS 8.1. Autolayout включен и не использует ограничения слева или справа. я использую только ведущие или конечные ограничения. Базовая интернационализация включена в настройках проекта, также добавили языки в локализацию. но когда я запускаю приложение на устройстве и устанавливаю язык и регион устройства для арабского, я не могу получить зеркальный интерфейс. Нужно ли мне что-либо делать в коде, чтобы получить зеркальный интерфейс? Каков наилучший способ поддержки RTL-интерфейса? Как подкласс контролировать и переопределять методы рисования?

Пожалуйста, используйте this link, чтобы получить образец скриншота моего приложения.

+1

Почему бы вам не попробовать два разных вида в раскадровке, с тем же приложением IBOutlet? Поместите сцену в зависимости от того, что вам нужно, зависит от языка. – Mrunal

+0

Я просто сохраняю это как последний вариант, потому что у меня есть около 43 экранов, а также для iPhone 6 плюс я планирую иметь разные раскадровки. Просто интересно, почему у яблока нет четкой документации для этого, когда приложения os x могут зеркально отразить без каких-либо усилий :( – Bluewings

+0

В этом случае вам необходимо управлять всеми ограничениями через кодовую базу. – Mrunal

ответ

2

Я просто нашел легкий путь из документов Apple, вместо того, чтобы иметь 2 раскадровки для языков RTL и LTR.

  1. Прежде всего включить базы интернационализации в проекте настройки
  2. Добавить язык - в моем случае я добавил арабский и иврит
  3. Xcode будет локализовать Stroy доску и вы можете увидеть различные строки раскадровки для различных языков
  4. Измените тексты для своих меток во вновь создаваемом файле строк. В моем случае я изменил в арабских и еврейских файлах строк
  5. Используйте AutoLayout для проектирования всего пользовательского интерфейса.
  6. Не используйте ограничения слева или справа. Вместо использования только начальные и конечные ограничения
  7. Добавьте приведенный ниже код в основной функции и запустить приложение в симуляторе
NSArray* languages = [NSArray arrayWithObjects:@"ar", nil]; 
[[NSUserDefaults standardUserDefaults] setObject:languages forKey:@"AppleLanguages"]; 

Ваше приложение теперь будет работать на RTL языка с зеркальным UI без имея 2 раскадровки. Примечание: если вы не устанавливаете ограничения автоопределения правильно, это не будет работать. Однако из-за новых экранов вам нужно научиться использовать автоматическую компоновку.

+0

это не сработает для меня – Jitendra

+0

@Jitendra, в чем была проблема? Подробно объясните пожалуйста – Bluewings

+0

Я хочу сменить все пользовательские интерфейсы на левую сторону – Jitendra

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