Контейнер дочернего представления не соответствует требуемой ширине в swift
У меня есть контейнер просмотра, чтобы показать только 1 экран с телефоном и 2 с вкладкой. Итак, в ViewDidLoad(), я использую метод
func addListController(){
self.addChildViewController(listController!)
listController?.view.frame = defineListSize()
self.containerView.addSubview((listController?.view)!)
listController?.didMove(toParentViewController: self)
}
где метод defineListSize определяет размер первых детей
func defineListSize() -> CGRect {
var rect :CGRect = CGRect(x: 0, y: 0, width: self.containerView.frame.size.width, height: self.containerView.frame.size.height)
switch (deviceIdiom) {
case .tv:
rect = CGRect(x: 0, y: 0, width: self.containerView.frame.size.width/2, height: self.containerView.frame.size.height)
case .pad:
rect = CGRect(x: 0, y: 0, width: self.containerView.frame.size.width/2, height: self.containerView.frame.size.height)
case .phone:
rect = CGRect(x: 0, y: 0, width: self.containerView.frame.size.width, height: self.containerView.frame.size.height)
case .unspecified: break
default: break
}
return rect
}
Тем не менее, когда на планшете добавляются первые дочерние элементы, он всегда равен половине окна просмотра контейнера. Хотя в отладке я вижу, что у прямоугольника хорошие данные. Я пытался использовать addListController() в viewWillAppear или viewWillLayoutSubviews(), но тот же результат. Второе дочернее представление, когда добавлено с правой стороны, имеет хорошие размеры и обрезает правую часть первого дочернего.
Так в чем же проблема? Спасибо