4

関連する 2 つの小さな問題があり、2 つ目は最初の問題が原因だと思います。

1 つ目は、アプリに複数の UIButton がありますが、テキストはなく、背景画像だけです。これらの画像は 6 か国語にローカライズされています。問題は、ストーリーボードでビューを編集するときに、すべてのボタンがランダムに画像をロードすることです (英語の場合もあれば、スペイン語の場合もあれば、ロシア語の場合もあります…)。私はキーを持っているので、すべて英語である必要があります: CFBundleDevelopmentRegion ja

写真を見てください。すべてが適切に構成されていると思います。何か変なものが見えますか?たぶんこれは Xcode のバグです。

ここに画像の説明を入力

ここに画像の説明を入力

ここに画像の説明を入力

2 番目の問題は、自動レイアウトを使用していることです。これは、これらのボタンの画像が言語によってサイズが異なるためです。そのため、組み込みコンテンツのサイズが変更されると、ボタンの幅が変更されます (幅の制限がないため)。問題は、幅の制約を取り除くためにボタンを選択して「コンテンツに合わせてサイズを合わせる」オプションを押すと、完全に機能するように見えることです (別の言語でアプリを起動すると、幅は言語に応じて自動的に変更されます)ただし、ストーリーボードが別の言語で画像を読み込むと (最初の問題)、自動レイアウトによって幅の制約が自動的に追加され、アプリを再度起動すると、ほとんどの言語でボタンの幅が正しくありません。何が起こっているのか分かりますか?

おそらく非常に汚い回避策は、ロード時の幅の制限を取り除く UIButton の子孫を作成することです。それが機能するかどうかはわかりません。

これらの問題に関するあなたのアイデアに感謝します。

4

1 に答える 1

2

Xcode のバグのようですが、最終的なアプリケーションには影響しません。

私は次のことをしました。新しい Xcode プロジェクトを開始しました。自動レイアウトのストーリーボードを使用しました。Base Internationalization は使用しませんでした。

メイン ビューに 3 つのボタンを追加しました。次に、ボタンで使用する 3 つの画像を作成し、リソース グループに追加しました。PNG ファイルをストーリーボードと共に en.lproj フォルダーに保存しました。最初に英語版を動作させました。

その後、プロジェクトに行き、フランス語を追加しました。ローカライズする必要があると考えられるすべてのファイルのダイアログが表示され、PNG ファイルが含まれていました。それらすべてを fr.lproj フォルダーにコピーしました。次に、PNG ファイルのフランス語版を作成し、元のファイル名で fr.lproj フォルダーに保存しました。

Xcode で表示すると、ボタンの 1 つだけがフランス語でした。他は英語でした。

シミュレーターでアプリを実行すると、言語が切り替えられたときに正しい PNG が使用されました。

煩わしいですが、実行中のアプリには影響がないようです。

Xcode を終了して再起動すると、どちらが正しいかは変わりますが、それでも正しく動作しません。Apple に RADAR バグを送信する必要があります。http://bugreporter.apple.com/

于 2013-06-10T17:37:35.117 に答える