0

アップルは次のように述べています。

「コンテナ ビュー コントローラは、このメソッドを使用して子ビュー コントローラのサイズを返します。UIKit は、ビュー コントローラの viewWillTransition(to:with:) メソッドのデフォルト実装の一部としてメソッドを呼び出します」

そして、私が初めてプログラムを起動したとき:

class ViewController: UIViewController {
                       
override func viewDidLoad() {
    super.viewDidLoad()
    
    let child = ViewControllerChild()
    self.addChildViewController(child)
    self.view.addSubview(child.view)
                    
   
    child.view.translatesAutoresizingMaskIntoConstraints = true
    child.view.autoresizingMask = [.flexibleBottomMargin, .flexibleRightMargin]       
}

override func size(forChildContentContainer container: UIContentContainer, withParentContainerSize parentSize: CGSize) -> CGSize {
    return CGSize(width: 100, height: 100)
}

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
    super.viewWillTransition(to: size, with: coordinator)
}

完全な親 vc ビューのサイズの子ビュー コントローラーのビューが (100, 100) ではありません。それで、それをオーバーライドする本当のポイントは何ですか? (viewdidload の最初のロード) で子 vc ビューのフレームを再定義してから、preferredContentSizeDidChange 関数で特性の変更に対応できるのですか?

ここに画像の説明を入力

4

2 に答える 2