Apple говорит:
Контроллеры представлений-контейнеров используют этот метод для возврата размеров своих дочерних контроллеров представлений. 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). Итак, какой реальный смысл переопределять его, если я могу реагировать на изменения свойств, переопределяя дочерний фрейм представления vc в (1-я загрузка в viewdidload), а затем в предпочтительной функции ContentSizeDidChange?