「ナビゲーションバー」の警告フレームは、実行時に異なりますXcode 8 Swift 3に表示されます


143

にアップグレードする前はXcode 8、このような場合にこのエラーは発生していません。ナビゲーションコントローラが異なります。それらすべてについて、エラーが表示されますFrame for "Navigation bar" will be different at the run time. Navigation bar "Expected: width=384, Actual: width=375。実際には、これらのナビゲーションコントローラにはありませんNavigation barNavigation barサブビュー用に存在します。とにかく、のチェックボックスをチェックShows navigation barしてチェックを外すことで解決できますAttributes inspector。しかし、残念ながら私が再び開くたびに、Main.storyboardこの警告が再び表示されます。また、黄色の三角形をクリックしても、更新フレームでは何も起こりません。

ここに画像の説明を入力してください


1
ここで確認された同じ問題。提案された解決策はどれも問題を解決しません。
GregP 2016

@GregPは私の解決策を確認して返信してください
KSR

@Ashish Kakkadは私の解決策を確認して返信してください
KSR

rdar:// 28844288に提出。だますこと自由に感じopenradar.me/radar?id=4985464104681472
ギヨームAlgisに

これは私のプロジェクトを更新した後に私を悩ませている私の最後の警告です。
Sethmr

回答:


154

プロパティ「シミュレーションサイズ」を「フリーフォーム」に変更すると、警告が消えます。


37
これは問題を解決しません。Xcodeを閉じて再度開く問題は再び発生します。
Ashish Kakkad 2016

2
これは私を地獄に追い込んでいます...私はこれを試したところ、一時的に警告が消えました。シミュレーションサイズをいつでも切り替えて、警告が表示されなくなったときに削除できます。素晴らしい。迷惑です。
nekonari 2016年

5
一時的な修正のみ-これは答えではありません。
emem

5
このシミュレートされたサイズを変更して(および「推定」に戻すか、または「Scrollviewインセットの調整のオン/オフを切り替えて」)ください。どちらもStoryboardにそのを削除させmisplaced="YES"ます。これはXcodeのバグであり、この修正は強制更新の一種です。@buildsucceededの回答から引用。
bauerMusic 2017年

1
@MobileBloke force-refreshによって、ストーリーボードビューがパラメーターを書き換え(更新)し、警告を再評価して削除します。これは実際には更新であり、強制はそれ自体では(本来あるべきように)自動的に実行されず、手動での任意の変更が必要であることを意味するだけでした。
bauerMusic 2017年

35

ここで説明したように、Scrollviewインセットの調整のオン/オフを切り替えることでこれを修正できます。


4
うわー、そして(gitをチェックして)文字通りこれを行うと起こるのmisplaced="YES"は削除されることだけです。:/
ビルドは2016年

7
これにより、次回プロジェクトを閉じて再度開くまで、問題が修正されます。完全な修正ではありません。
Casey Wagner

15

私は[表示]から[iPhone 6S]を[iPhone 5S]に変更し、次に[iPhone 6S]に戻しました。Xcodeはすべての変更を行って警告を削除しました。


2
これはしばらくの間機能しましたが、Xcodeが再び処理した後、同じことが起こり、警告が再び発生しました。これは最新のXcodeでまだ機能していますか?
UKDataGeek 2017

12

これはXcode 8.3.1で機能しました。Xcodeを再起動した後も機能します。

ここに画像の説明を入力してください

  1. ナビゲーションコントローラを選択

ここに画像の説明を入力してください

  1. サイズインスペクターの表示に移動します

ここに画像の説明を入力してください

  1. シミュレーションサイズをフリーフォームに変更

ここに画像の説明を入力してください

  1. シミュレーションサイズを固定に戻す

ここに画像の説明を入力してください

  1. その後、警告が消えます。

ここに画像の説明を入力してください


「フレームの更新」ボタンではなく、これが機能する理由は何ですか?
マンガン2017

@guoc、仲間、stackoverflow.com / questions / 46375778 /…を助けてくれませんか?
May Phyu

7

迷惑な警告を取り除くための回避策として、次の場所にある「誤った場所」を削除してMain.storyboardを手動で編集しています。

<navigationBar key="navigationBar" opaque="NO" contentMode="scaleToFill" misplaced="YES" translucent="NO" id="Os1-Xh-7XN">

ハックですが、警告が1つではなく0のほうがいいです:)


これを後で追加する必要がありますか?警告がない限り、ナビゲーションコントローラがどのように表示されるかは気にしません。ちょっとおかしいです。ストーリーボードは1秒間警告を認識し、この方法でストーリーボードに入ると警告は消えます。
Sethmr

私は同じことをした後、ストーリーボードに触れないでください。すべてうまくいきます。
Zhao

PRoblemは、リロードすると戻ってきます...このエラーが発生したときにスピナーが実行されている状態でストーリーボードをロードするのに長い時間がかかることに気付いている人はいますか?
UKDataGeek 2017

6

ストーリーボードの左下にある[名前を付けて表示]をクリックして別のデバイスサイズを選択し、もう一度クリックして、元のデバイスサイズに戻します。これでうまくいきました。


1
それも私のためにそれを一時的に修正するだけです
zero3nna

3

Xcode 8にパッチが適用されるまでは、[表示:]オプションを[iPhone SE]に設定して警告を排除できます。理想的ではありませんが、今のところ機能します。


私はSEを使用していますが、それでも警告
アブドゥルワヒード

1
ええ、私は知っています。しかし、その選択を別のものに切り替えると、それらは消えます。現在、私は7から始めてSEに切り替え、次に7に戻ってこれらの警告をクリアします。または、そのままにして、misplaced変更をコミットするときにプロパティをチェックインしないでください。
nekonari 2016年

3

上記の提案をすべて試しましたが、うまくいきませんでした。もっと深刻なバグかもしれません。

Apple Bug Reporter(リンク:https : //bugreport.apple.com/logon)でバグを記録しました-同じことをしたい場合は、バグを参照してください:31355220Appleが連携できるようにします。それを報告する人が増えるほど、この煩わしさを修正するために必要な情報が増えます。


2

ビューコントローラーのシミュレーションサイズをフリーフォームに設定し、幅を375から320に設定することで、問題を完全に取り除くことができました。


親を持たないビューコントローラーでのみ設定する必要があります(ルートビューコントローラー+ストーリーボードの内容に応じてそれ以上)
thetrutz

1

同じ問題があった場合、ここで私が修正したものです:

エラー情報を展開し、警告の詳細をクリックします。Xcodeは、寸法/位置の設定を自動的に開きます。現在の値を、警告の詳細で提案されている値に置き換えます。

ここに画像の説明を入力してください

基本的に、ランタイムのサイズが、サイズインスペクターで指定したサイズと同じであることを確認してください。

投稿した画像の横にあるアイコン(白い丸の付いた黄色の三角形。場合によっては、赤い丸のアイコン)をクリックして、問題を自動的に修正または調整するオプションもあります。

ここに画像の説明を入力してください

制約の更新オプションを選択してから、それに応じて新しい制約を調整しました。


4
この状況では機能しません。ナビゲーションバーの[X]、[Y]、[幅]、[高さ]のフィールドはすべてグレー表示され、編集できません。
Slipp D. Thompson 2017

@Ian Hmmm…数字が一致するようにxibを編集しただけだと思います。
Slipp D. Thompson 2017

1

私にとっての問題は、プッシュ時にボトムバーを非表示にすることでした(IBチェックボックスを使用)。

「ボトムバー」オプションで「なし」を選択する必要がありました:

ここに画像の説明を入力してください


0

問題を修正したようです。これが私がしたことです。

通常のように更新フレームを選択します。別のファイルを開き、ストーリーボードファイルをもう一度クリックします。それが機能しない場合は、Xcodeを再起動します。内部で更新されているようですが、インターフェースビルダーのUIが時々スタックしてしまいました。


3
XCodeを再び開いた後、この警告は実際には消えますが、プロジェクト内のファイルを開くと、もう一度開くとmain.storyboardこれらの警告が再び表示されます
Danny

0

ビューコントローラーのデバイスプレビューをxcodeで変更し、コンパイルして警告を確認してください...

Xcode 8は少しバグがあり、Interface Builderは含まれているすべてのビューに影響するランダムなnoでリセットします。プレビューデバイスを変更してみてください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.