2014-11-24 29 views
1

按蘋果documentation 「iOS不會自動鏡像控制,因此如果您想爲iOS應用執行此操作,請爲該控件創建子類並覆蓋繪圖方法。」創建用於iOS的從右到左用戶界面

當用戶在主屏幕中選擇阿拉伯語或希伯來語語言時,我想鏡像我的整個用戶界面。我正在尋找相同的教程和文檔,但沒有任何幫助。

請使用Xcode 6.1和從iOS 7到iOS 8.1的應用程序目標找到我迄今爲止所做的工作: 。 Autolay已啓用,我沒有使用左或右限制。我只使用前導或尾隨約束。 在項目設置中啓用了基本國際化,還在本地化中添加了語言。但是當我在設備上運行應用程序並將設備語言和區域設置爲阿拉伯語時,我無法獲取鏡像的用戶界面。我必須在代碼中做任何事情才能獲得鏡像的用戶界面? 什麼是支持基於RTL的用戶界面的最佳方式?如何繼承控件並重寫繪圖方法?

請使用this link獲取我的應用程序的樣本截圖。

+1

爲什麼不嘗試在故事板中使用兩個不同的視圖,並附帶相同的IBOutlet?根據語言選擇你需要的場景。 – Mrunal 2014-11-24 12:30:01

+0

我只是把它作爲最後一個選項,因爲我有近43個屏幕,並且還爲iPhone 6加上計劃有不同的故事板。我只是想知道爲什麼蘋果沒有明確的文件,當這個OS X應用程序可以沒有任何努力的鏡像:( – Bluewings 2014-11-24 12:33:39

+0

在這種情況下,你需要通過代碼庫管理所有的約束條件 – Mrunal 2014-11-24 12:35:25

回答

2

我剛剛從Apple文檔中找到了一種簡單的方法,而不是爲RTL和LTR語言創建2個故事板。

  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 2015-07-06 11:28:50

+0

@Jitendra是什麼問題?詳細解釋請 – Bluewings 2015-08-07 06:42:50

+0

我想把所有的用戶界面移到左側 – Jitendra 2015-08-07 08:32:47