スクロールビュー(スナップチャットスタイル)内に3つのビューコントローラを追加したいと思います。次のコードはうまくいくようですが、アプリケーションを終了して(ホーム画面に戻って)戻ってくると、奇妙な理由でビューがサイズ変更されます。私はalignAllTopとalignAllBottomを追加しようとしましたが、成功しませんでした。なぜこのようなことが起きているのでしょうか?スクロールビュー内に3つのビューコントローラを埋め込む
let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)
self.mainScrollView.delaysContentTouches = false
let v1 = storyboard.instantiateViewController(withIdentifier: "profileViewController") as! profileViewController
self.addChildViewController(v1)
self.mainScrollView.addSubview(v1.view)
v1.didMove(toParentViewController: self)
//--------
let v2 : recordViewController = recordViewController(nibName: "recordViewController", bundle: nil)
self.addChildViewController(v2)
self.mainScrollView.addSubview(v2.view)
v2.didMove(toParentViewController: self)
//--------
let v3 = storyboard.instantiateViewController(withIdentifier: "discoverViewController") as! discoverViewController
self.addChildViewController(v3)
self.mainScrollView.addSubview(v3.view)
v3.didMove(toParentViewController: self)
//--------
var v1frame : CGRect = self.mainScrollView.bounds
v1frame.origin.x = 0
v1.view.frame = v1frame
var v2frame : CGRect = self.mainScrollView.bounds
v2frame.origin.x = self.view.frame.width
v2.view.frame = v2frame
var v3frame : CGRect = self.mainScrollView.bounds
v3frame.origin.x = self.view.frame.width*2
v3.view.frame = v3frame
//v1.view.translatesAutoresizingMaskIntoConstraints = false
let csH1 = NSLayoutConstraint.constraints(withVisualFormat: "|-[v]-|", options: [.alignAllTop], metrics: [:], views: ["v": v1.view])
let csH2 = NSLayoutConstraint.constraints(withVisualFormat: "|-[v]-|", options: [.alignAllTop], metrics: [:], views: ["v": v2.view])
let csH3 = NSLayoutConstraint.constraints(withVisualFormat: "|-[v]-|", options: [.alignAllTop], metrics: [:], views: ["v": v3.view])
let csB1 = NSLayoutConstraint.constraints(withVisualFormat: "|-[v]-|", options: [.alignAllBottom], metrics: [:], views: ["v": v1.view])
let csB2 = NSLayoutConstraint.constraints(withVisualFormat: "|-[v]-|", options: [.alignAllBottom], metrics: [:], views: ["v": v2.view])
let csB3 = NSLayoutConstraint.constraints(withVisualFormat: "|-[v]-|", options: [.alignAllBottom], metrics: [:], views: ["v": v3.view])
self.mainScrollView.addConstraints(csH1)
self.mainScrollView.addConstraints(csH2)
self.mainScrollView.addConstraints(csH3)
self.mainScrollView.addConstraints(csB1)
self.mainScrollView.addConstraints(csB2)
self.mainScrollView.addConstraints(csB3)
//UI
self.mainScrollView.contentSize = CGSize(width: self.view.frame.width * 3, height: self.view.frame.size.height)
self.mainScrollView.setContentOffset(CGPoint(x: self.view.frame.width, y: 0), animated: false)
視覚的なデバッガを試すことをお勧めします。 (1)Xcodeのエディタの下にあるこのボタンをクリック - 実行中のアプリケーションのビジュアルデバッグを有効にします (2)紫色の矩形があるかどうかを確認してください(ここでは、http://imgur.com/a/Z9sYK) Xcodeのトップステータスバー(それがそうであるかどうかはわかりません)に数字が表示されます。それがある場合は、自動レイアウトの問題があることを意味します。 –
@DaniyarKarbayevエラーはありません。それがあっても、なぜ私はアプリを再び開くときに起こるのでしょうか? –