web-dev-qa-db-ja.com

Xcode 5レイアウトエラー-ラベルの誤った配置のビューフレームは実行時に異なります

Xcode 5をインストールしたばかりですが、現在、来週iOS 7のApp Storeにリリースするためにアプリを準備しています。しかし、エラーや警告がたくさんあります。

私がUIPickerView、UITextFields、UILabelsの束を持っている1つのアプリで。このアプリでは、ストーリーボードファイルのほとんどすべてのコントロールでIllegal Configuration(赤)エラーが発生します。私はそのエラーが何であるか、またはそれを修正する方法を知りません。私はそれについていくつかの助けに感謝します。 20の複雑なビューがあるため、ファイルを完全に再作成することはできません。

別のアプリには、UILabelsとUITextFieldsの束を含むUIScrollViewに加えて、プログラムで作成され、(前のビュー)UITableViewで選択した内容に基づいてテキストを含み、コンテンツに合わせてサイズを変更するUITextViewがあります。 UIScrollViewは、UITextViewの新しいサイズに対応するようにサイズ変更されます。これはコンパイルおよびビルドされ、UITextViewが作成されますが、テキストが含まれていません。これは、おそらく正しくサイズ変更されていないためです。 UIScrollViewは、本来垂直方向に加えて、水平方向にもスクロールするようになりました。これは(黄色の)警告のみを表示します:

Misplaced View Frame for "Label - Symbol:" will be different at run time.は、このラベルと別のラベル、テキストフィールド、スクロールビューを含む4つのコントロール用です。

XcodeとiOSの新しいバージョンに調整するのは今回が初めてなので、これについて何か助けていただければ幸いです。

PS:Illegal Configurationエラーの詳細は次のとおりです。
Auto Layout on iOS Versions prior to 6.0

ありがとう!

18
Youssef Moawad

ここでまだ回答を探している場合は、オートレイアウトビューに制約がないか、不適切な制約がある可能性があります。

これを修正するには、ビューを選択してXcodeメニューオプションに移動します:Editor -> Resolve Auto Layout Issues -> Add Missing Constraints / Reset to Suggested Constraints

レイアウト全体を選択して同じことを行うこともできます。これにより、レイアウト上のすべてのビューが推奨される制約にリセットされます。

カスタム制約を実行する必要がある場合は、Storyboard/XIBファイルで、またはコードで手動で、独自の自動レイアウト制約を設定する必要があります。

自動レイアウトの詳細については、 Appleのドキュメント を参照してください。

最後に、自動再調整を行わずにレイアウトをそのまま表示する場合は、レイアウトの自動レイアウトをオフにすることもできます(これはお勧めしません)。

enter image description here

45
Joel Fischer

Reset to Suggested Constraintsは、この警告を解消しない場合があります。解決策は、問題のUIViewのサイズインスペクターのIntrinsic SizeドロップダウンメニューでPlaceholderを選択することです。そして、必要に応じて不足している制約を追加します。

15
Morrowless

ビューコントローラーを選択するだけです

エディター-> Autolayoutの問題の解決-> ViewControllerのすべての制約をクリアすれば完了です。

3

フレームについて「ラベルフレームは実行時に異なります」-Autolayout:Runtimeのリリースノートを参照してください。

https://developer.Apple.com/library/prerelease/ios/releasenotes/DeveloperTools/RN-Xcode/index.html#//Apple_ref/doc/uid/TP40001051

NDAが解除された後、完全な回答がここに表示されます。

注:これはXcode 4.2でも発生しますが、問題はIBでは発生しません。

2
memmons

また、Viewコントローラーで追加した2つのテキストフィールドでも同じエラーが発生しました。問題の解決に役立ったのは、ドキュメントの概要で、ICtr + dragged最初のテキストフィールドからビューまで、そして選択されたコンテナの水平方向の中央に配置。次に、ビューまでの2番目のテキストフィールドCtr + draggedを選択してコンテナの垂直方向中央を選択しました。これもお役に立てば幸いです。

0
Nupur Sharma

または、自動レイアウトを完全にオフにすることもできます。

このアプローチは、iOS 5との互換性が必要な場合に便利です。

0
Jay Versluis

Xcodeは、親ビューに対する相対位置で機能するようになりました。オレンジ色の線をクリックしてマークをクリックし、ストーリーボードの値を使用するか何かを選択するように修正できます

0
user2714257