2016-08-12 1 views
4

LOSのストーリーボードとRTLストーリーボードを使用し、Plistsから読み込むさまざまな言語をサポートするiOSアプリケーションがあります。英語のiOS版の端末でアプリを実行すると、言語を切り替えるときにすべてが完璧に見えます。しかし、私はiPhone OS言語をRTL言語に変更します。 UIが乱されている。iOSのローカリゼーションがUIを乱す

これは、特にホームスクリーンでアプリ名を変更するためにローカリゼーションを有効にした場合に発生します。

これはどうして起こりますか?

メニュー全体がうんざりしています。たとえば、左側にはメニューがありますが、メニュー項目のアイコンは左側に、ラベルは右側にある必要があります。

RTL言語LTR iOSの言語デバイス上すなわち英語

RTL iOSの言語デバイスでのRTL言語 enter image description here

+1

スクリーンショットを追加できますか? –

+0

@SaintThread私の投稿を編集しました –

+0

parenviewにつながるラベルを追加して、imageviewに後ろにつけましたか? –

答えて

1

あなたが使用先頭と末尾の制約をしているためです。 RTL環境の中に残っているLTR環境の先行手段では、先頭は正しいことを意味します。 これはRTL/LTRに簡単に対処するためのアップルの方法です。[あなたの場合はそれほどではありません... この動作を無効にするには、ビューの意味属性を変更します。

意味内容

あなたは先頭と末尾の制約を使用して、あなたの意見をレイアウトした場合、自動的に ビューフリップポジション(英語など)の言語に左から右、右から左へ を切り替えます言語 (アラビア語など)。しかし、一部のインタフェース要素は、読み取り方向に基づいて位置を変更しないでください。 たとえば、物理方向(上、下、左、右) のボタン は、常に同じ相対的な向きにとどまるべきです。

ビューのsemanticContentAttributeプロパティは、右から左への言語と右から左への言語を切り替えるときに ビューのコンテンツが反転するかどうかを決定します。

インタフェースビルダーでは、属性 インスペクタでセマンティックオプションを設定します。値がUnspecifiedの場合、ビューの内容は の読み取り方向で反転します。 Spatial、Playback、またはForceに設定されている場合は、コンテンツは常に左端に のリーディングエッジ、右にリーディングエッジが配置されて配置されます( 左から右)。右から左に強制する は、常に先頭の辺が右側に、 が最後にコンテンツを配置します。

+0

先頭/末尾の代わりに配置をどのように追加しますか? –

+0

trailingAnchor/leadingAnchorの代わりにrightAnchor/leftAnchorが必要です。 Apple docのチャットを引用するように私の回答を編集しました –

0

すでに次
を行っていることを確認しAuto Layout、 を使用していると仮定すると、
固定幅の制約を削除します。ローカライズされたテキストを表示するビューのサイズ変更を許可します。固定幅の制約を使用すると、ローカライズされたテキストが一部の言語で切り取って表示されることがあります。

固有のコンテンツサイズを使用してください。テキストフィールドとラベルのデフォルトの動作は、自動的にサイズを変更することです。ビューがローカライズされたテキストのサイズに調整されていない場合は、ビューを選択し、[エディタ]> [コンテンツに合わせるサイズ]を選択します。

先頭と末尾の属性を使用します。制約を追加するときは、水平制約に先行する属性と後続する属性を使用します。英語などの左から右の言語の場合、先頭と末尾の属性は左右に相当します。ヘブライ語やアラビア語のような右から左への言語の場合、先頭と末尾は左右に相当します。先頭および末尾の属性は、水平方向の制約のデフォルト値です。

隣接するビューのピンの表示。固定するとドミノ効果が発生します。あるビューがローカライズされたテキストに合わせてサイズ変更されると、他のビューも同じように動作します。それ以外の場合、ビューは一部の言語で重複する可能性があります。

レイアウト変更を常にテストしますTesting Your Internationalized Appに記載されているように、さまざまな言語設定を使用してアプリをテストします。

ウィンドウの最小サイズまたは最大サイズを設定しないでください。ウィンドウとそのコンテンツビューを含むビューのサイズに合わせて調整します。これは言語が変更されると変更される可能性があります。
more

+0

https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPInternational/InternationalizingYourUserInterface/InternationalizingYourUserInterface.html#//apple_ref/doc/uid/10000171i-CH3-SW10からそのままコピーしました。 –

+0

私はすでにこれらを守っており、制約がうまく設定されています。 –

+0

問題は、先行する属性と末尾の属性を信じています。どのように修正できますか? @MartinR –

0

おそらく制約事項です。ストーリーボードでは、プレビューエディタを使用して、さまざまな言語で異なるデバイスサイズでUIをプレビューすることができます。

enter image description here

+0

いいえ、制約はうまく設定されています。 –

関連する問題