私はUINavigationController
をカスタムビューコントローラでインスタンス化しました。私は、ビューのサイズが変更されていないことがわかり、MyOtherViewController's
viewWillAppear()関数ではviewWillAppear()によってUIViewControllerのビューがサイズ変更されない
@IBAction func showVC(sender: AnyObject) {
let vc = MyOtherViewController()
navigationController?.pushViewController(vc, animated: true)
}
:そのビューは、タップすると、ナビゲーションコントローラを持つことになり、ボタンが視界に異なるカスタムビューコントローラのビューをプッシュ含まれていますビュー階層に収まるようにします。
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
print("view: \(view)")
}
print()
関数からの出力は、次のとおり
ビュー:<のUIView:0x7f9432719bd0。フレーム=(0 0; 600 600);自動サイズ調整= W + H;層= <のCALayer:0x7f9432717cc0 > >
あなたが見ることができるように、ビューのサイズは.xibファイルから元のサイズである、この時点ではまだ600 x 600
です。ビューはさまざまなiPhoneとiPadのディスプレイに表示されるため、.xibのビューのサイズは調整していません。
私のジレンマは、ビューの幅に基づいてNSLayoutConstraints
を構築する必要があるため、ビューの最終的な寸法が必要であるということです。
ビューのサイズを変更するには、どのような方法が推奨されますか? viewWillAppear()が呼び出された時点でビューのサイズが変更されることを期待するのは間違っていますか?
あなたは、ビューの実際のサイズを取得するために 'viewWillLayoutSubviews'を上書きすることができます。 – Paulw11