web-dev-qa-db-ja.com

Xcode 8に更新した後のレイアウトの問題

Xcode 8にアップグレードした後の画面の前と後を次に示します。
やったことは、main.storyboardを開いて、そこからスマートフォンでアプリをビルドして実行することだけでした。
バージョン管理では、Xcodeを開いてからmain.storyboardに多くの変更を加えていることがわかります。
これらの変更を削除するたびに、Xcode 7.3.1で使用するものを確認できます。
しかし、ストーリーボードでインターフェイスビルダーを再び開くとすぐに、それらの変更が元に戻るのがわかります。

ここでできることはありますか?

Xcode 8より前

enter image description here

Xcode 8への更新後

enter image description here

102
user2726072

ストーリーボードファイルをXcode8互換に変換すると、Tableview画像が表示されないという同様の問題がありました。これはXcode8のバグのように見えるので、バグ修正がリリースされるまで、次の回避策があります。

  1. Xcode 8でストーリーボードを開き、最初のデバイスビューを選択します。通常どおり変更します。
  2. 変更が完了したら、ストーリーボード->ファイルインスペクター->で開く->「Xcode 7.x」を選択します。

enter image description here

  1. プロンプトが表示されたら「保存して閉じる」を選択します
  2. ストーリーボードの変更は保存され、ストーリーボードはXcode8以前と同様に機能します。

ストーリーボードファイルに他の変更を加える必要がある場合は、これらの手順を再度実行してください。

111
David T

XIBまたはStoryboardは、デフォルトを古いバージョン7.xとして設定し、保存して閉じる。一時的な解決策ですが、機能します。 [保存して閉じる]が完了したら、再度開かないでください。それ以外の場合は、beginから同じ手順に従う必要があります。 enter image description here

14

ええ、同じ問題。私は部分的に次の方法でそれを修正することができました(Xcodeバージョン8.1(8B62)

Storyboardのドキュメントアウトラインで、いくつかのレイアウトの問題を示す黄色の矢印のある各シーンをクリックしました(スクリーンショットの番号1)

この後、問題のあるシーンごとに、「フレームの更新」小さなアイコン(スクリーンショットの番号2)をクリックして、シーンごとのすべてのレイアウトの問題を修正する必要がありました。

enter image description here

しかし、私の場合の1つのシーンは、Xcode7からXcode8への移行後も泣いている状態でした。制約を調整するか、欠落している制約を追加して、手動で修正する必要がありました。

XCode8とStoryboardsの驚きはありません。 AppCodeエディターを使用した場合、ストーリーボードをサポートしていないため、このような問題は発生しません; P

がんばろう!

8
TekMi

Xcode 8.1 Beta 2はこの問題を解決します。このダウンロードリンクを確認してください

https://developer.Apple.com/download/

7

可能な解決策については、スレッドに従ってください:(多くの開発者に起こると思います)。
Xcode 8 GM seed Storyboard issue
Xcode 8-以前のストーリーボードが歪んでいる

(anyH anyW width 600を使用しました)XcodeをXcode 8に更新すると、ViewControllersのすべてのサイズが変更されました。その結果、すべてのレイアウトが歪んでいました。
現在、この問題の解決策は3つしかありません(すぐに修正を待つことを信頼しません)。

1.各Viewcontrollerに移動し、Update Framesで修正します。

2。ほとんどのコントローラーが推測されるため、メインのViewController Size Inspector -> Freeform -> 600に移動します。コントローラーのすべてのサイズが変更されます(導入したいAppleの新機能の影響に注意してください)。

3。

Xcode 8(WWDC16)の新しいAutoLayout機能の追加リンク: Making Apps Adaptive、Part 1

6
Mike.R

私の場合、Akhil Katejaによって提案されたソリューションが機能し、メインビューの幅と高さもリセットする必要があります。

1)ビューサイズをフリーフォームに設定

enter image description here

2)ビューの幅と高さを元のサイズにリセット:

enter image description here

最後に保存して完了です。

5
christian mini

私にとっての解決策は、問題があるUIViewControllerをクリックしてからEditor > Resolve Auto Layout Issues > All Views In ... > Updates Frames

新しく選択されたデフォルトビュー(私の場合はiPhone 7)に基づいて、既存の制約に合うようにビューを再配置しました。

また、注意:ナビゲーションバーの配置ミス警告が表示された場合は、UINavigationController/UIViewControllerを選択してからAttributes Inspector > Bar Visibility > Shows Navigation Barを選択し、オフにしてからオンにします。

4
whycodewhyyyy

View SizeをFreeform from Inferredに設定するとうまくいきました。 Simulated Metrics in Attributes Inspectorという見出しの下にあります。

3
Akhil Kateja

これが役立つことを願って

Xcodeを7.3からXcode 8に更新してアプリを実行すると、一部のビューは完全に表示されますが、一部は歪んでいます。次に、nibファイルを確認し、特定のデバイスサイズを選択して、それに応じてnibを表示するように促しましたAny-Any(Xcode 7.3)ではなくオフコースであるデバイスサイズ。そのため、すべてのnibsファイルは正しい方法で表示されません。

私からの解決策:-下の画像のように黄色の矢印を押し

enter image description here

次のようなオプションを表示するポップアップが表示されます

enter image description here

Update Frames checked.itでApply to all views in containerを選択すると、歪んだUIの約90%が解決され、自動レイアウト制約の残りの問題は手動で解決できます。

3
Anurag Bhakuni

各コントローラーを選択し、「フレームの更新」をクリックして、レイアウトを修正しました。

3
Mayckon Barbosa

@ david-truongからの答え( https://stackoverflow.com/a/39589860/1407528 )は私の場合は機能しません。同じ状況にいる場合は、これを試してください:

すべてのデバイスをiOS 10以降に更新した場合、このバージョンのXcodeはそれらのデバイスを互換性のあるデバイスとして認識しません。だから、このトリックを試してください:

  • /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupportに移動します
  • IOS 10または10.1に関連するフォルダーを/ Applications/Xcode 7.3.1.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupportにコピーします
  • Xcode 7.3.1でプロジェクトを開きます(既に開いている場合はXcodeを再起動します)
  • 接続されているiOS 10以降のデバイスを選択します
  • プッシュラン

注:このトリックを使用すると、Swiftなどの新機能は使用できなくなりますが、プロジェクトをロードしてビルドできるはずです。

3
goe

同じ問題があり、コントローラーのビュー制約を強制的に更新することで解決しました。次のコードをviewDidLoad()関数に追加します

self.view.layoutIfNeeded()

Xcode 8.2には新しいボタンが1つあります(画像のオレンジ色の円を確認してください)。それはあなたにいくつかの助けを与えるでしょう。

手順:1.ストーリーボードを開き、必要なデバイスを選択します2. View Controllerを選択します3.言及されたボタン(画像のように)をクリックします4. View Controllerのフレームを更新し、続行できます

これより良い解決策は見つかりませんでした。見つかったら返信してください。

IB screenshot

1
Shahul Hasan

同様の問題を修正するために、xibをフリーフォーム(推論なし)として設定し、xibファイルをXcode 7.x互換として保存しました。私の場合、両方の手順が必要でした。それがお役に立てば幸いです!

1
Juan F. Sagasti

Apple開発者ポータルから.dmgファイルをダウンロードできるXcodeバージョン7.3.1を使用して問題を修正しました。私はすべてのアプリで自動サイズ変更を使用しました。このバグを修正できる場合にのみ、Xcode 8に更新します。

ここからダウンロードしてください: https://developer.Apple.com/services-account/download?path=/Developer_Tools/Xcode_7.3.1/Xcode_7.3.1.dmg

1
Koppi

viewdidloadの制約とレイアウトサブビューを更新すると問題が解決します

- (void) viewDidLoad {
        [self.view updateConstraints];
        [self.view layoutSubviews];
        [super viewDidLoad];
}
0