18

Xcode 5 をインストールしたばかりで、来週 iOS 7 の App Store にアプリをリリースする準備をしています。ただし、大量のエラーと警告が表示されます。

UIPickerView、UITextFields、および多数のUILabelsがある1つのアプリ。このアプリではIllegal Configuration、ストーリーボード ファイル内のほぼすべてのコントロールで (赤) エラーが発生します。そのエラーが何であるか、またはそれを修正する方法がわかりません。その上で助けていただければ幸いです。20 の複雑なビューがあるため、ファイルを完全に再作成することはできません。

別のアプリには、一連の UILabels と UITextField を含む UIScrollView と、プログラムで作成された 1 つの UITextView があり、(前のビュー) UITableView で選択したものに基づいてテキストを含み、コンテンツに合わせてサイズを変更します。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

ありがとう!

4

7 に答える 7

45

ここでまだ答えを探している場合は、AutoLayout ビューに制約がないか、不適切な制約がある可能性があります。

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

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

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

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

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

ここに画像の説明を入力

于 2013-09-22T03:10:10.557 に答える
3

View Controllerを選択するだけです

Editor->Resolve Autolayout issues--> Clear All Constraint in ViewController で完了です。

于 2013-11-21T06:52:50.230 に答える
2

フレームについて「ラベルのフレームは実行時に異なります」 -- 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 によって表面化されません。

于 2013-09-11T13:25:59.247 に答える
0

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

于 2013-09-20T18:28:32.363 に答える
0

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

このアプローチは、iOS 5 との互換性を維持したい場合に便利です。

于 2014-05-04T14:38:08.350 に答える