===[〜#〜] edit [〜#〜]========
この問題はXcode 8.1で解決されました。確認しました。
================
自動レイアウトが適切にわかりません。だから、私はすべてのアプリで自動サイズ変更オプションを使用していますが、それは私にとっては問題ありません。これにより、すべての要件を問題なく満たすことができます。
Xcode 8では、古いSwiftプロジェクトをSwift 3.に移行しました。現在、問題が発生しています。
画像を参照してください。自動リサイズを設定しました。これまですべてのデバイスで問題なく動作し、このプロジェクトはAppStoreで公開されているため、UIまたはストーリーボードを表示できません。
今、私はプロジェクトでいくつかの更新を行う必要があります。だから私は現在Xcode 8で作業しています。しかし、すべてのコントロールが中央に配置され、UIが台無しになっているため、自動サイズ変更が正しく機能していません。
また、この問題はデバイスでも持続します。シミュレータとデバイスもチェックインしました。しかし、問題もあります。提案やヘルプは歓迎されます。前もって感謝します。
編集:
昨日はランタイムにのみ問題がありますが、今日のストーリーボードもこの画像のようなビューを変更しました
つまり、UIデザイン全体が台無しになります。これは変です。
Xibまたはストーリーボードから自動サイズ変更のチェックを外してみてください。そしてin viewDidLoad
set [_scrollView setAutoresizesSubviews:YES];
これで問題が解決したら試してください
編集:ストーリーボードの場合、Resize view from NIB
オプション。
Xcode 8ベータ2はこの問題を解決しました!!もうチェックしました!
xcode8のscrollViewでも同じ問題に直面しています
scrollViewを操作する1つのソリューションがあります
最初にシンプルなUIViewを取得し、追加するすべてのコンポーネントをscrollViewに追加し、そのコンポーネントをautoSizingに渡します
また、1つのscrollViewを取得し、プログラムでビューフレームを設定し、さらにscrollView contentSizeを設定して、ビューをscrollViewに追加します。
賢明なように、私の場合、このコードをSwiftプロジェクトのviewDidLoadに追加します
// add view to scrollview
self.scrollObjForNextAppointment.contentSize = CGSize(width:self.scrollObjForNextAppointment.frame.size.width,height:410)
self.viewForScrollContent.frame = CGRect(x:0,y:0,width:self.scrollObjForNextAppointment.frame.size.width,height:410)
self.scrollObjForNextAppointment.addSubview(self.viewForScrollContent)
それは私のために働いています、ありがとう!
更新この問題はXcode 8.1で修正されたようです
同じ問題を抱えていて、ここでの違反者はIScrollView要素であることがわかりました。すべてをスクローラーの外側に移動するだけで、以前と同様にすべてが正常に機能することがわかります。
つまり、1つの可能な回避策は、スクロール可能なコンテンツを通常のUIViewに配置し、実行時にプログラムでUIScrollViewに置き換えることです。
モデレーターがここで私の回答を重複して親切に削除してくれました。
Maxに応じて、はい、サブビューのサイズを変更するのは苦痛です。そのため、スクロールビューに単一の「コンテンツビュー」を追加し、そのビュー内で既存のサブビューをすべて移動することをお勧めします。スクロールビューで行ったように、コンテンツビュー内のサブビューを自動サイズ変更し、スクロールビューに合わせてコンテンツビューを自動サイズ変更します。
ViewDidLayoutSubviews内でサイズを変更するのは、そのコンテンツビューです。
繰り返しますが、scrollviewコンストラクト内の「コンテンツビュー」は、autolayoutを使用して自動サイズ変更スクロールビューを取得するための標準的な方法であるため、ベストプラクティスと見なす必要があります。
その方法をここで説明します...
https://spin.atomicobject.com/2014/03/05/uiscrollview-autolayout-ios/
私の方法は少し複雑に思えますが、約15分で約12のシーンとVcのストーリーボードを修正することができました。自動レイアウトを使用してすべてを再構築するには、はるかに長い時間がかかりました。
AppleはXCode 8.2をリリースしたばかりで、この問題を修正してくれました。 8.1と並行してインターフェイスデザインにXCode 7.3.1を使用していましたが、8.2を問題なく使用できます。
ただし、ストーリーボードは、新しい「表示方法」機能に対応するために、フレームの幅と高さで更新されます。デバイス/シミュレータでの実行には影響しないようですが。
奇妙なことに、バグ修正 XCode 8.2リリースノート には記載されていません。
元の答え ここ