
Если ориентация устройства изменилась на альбомную, пользовательский интерфейс не вызывает проблем и отображается именно так, как я хочу. См. изображение ниже.

Но если Я снова изменил ориентацию на портретный режим, тогда высота представления таблицы внутри Containerview не обновляется. Я добавил фиолетовый цвет фона в представление таблицы. См. изображение ниже.

У меня есть попробовал view.setNeedsLayout(),ContainerView.setNeedsLayout(), view.layoutIfNeeded() внутри функции viewWillTransition. Но по-прежнему безуспешно.
Пожалуйста, помогите решить эту проблему.
Обновление:
Вот как я добавляю подпредставление в вид контейнера
Код: Выделить всё
func showMCQs() {
mcqKit = MCQKit()
mcqKit!.configureMCQV2()
addChild(MCQKit.mcqV2Controller)
containerView.addSubview(MCQKit.mcqV2Controller.view)
MCQKit.mcqV2Controller.didMove(toParent: self)
MCQKit.mcqV2Controller.view.anchor(top: containerView.topAnchor, left: containerView.leftAnchor, bottom: containerView.bottomAnchor, right: containerView.rightAnchor, paddingTop: 0, paddingLeft: 0, paddingBottom: 0, paddingRight: 0, width: nil, height: nil, centerX: nil, centerY: nil)
}
extension UIView {
func anchor(top: NSLayoutYAxisAnchor?, left: NSLayoutXAxisAnchor?, bottom: NSLayoutYAxisAnchor?, right: NSLayoutXAxisAnchor?, paddingTop: CGFloat?, paddingLeft: CGFloat?, paddingBottom: CGFloat?, paddingRight: CGFloat?, width: CGFloat?, height: CGFloat?, centerX: NSLayoutXAxisAnchor?, centerY: NSLayoutYAxisAnchor?) {
translatesAutoresizingMaskIntoConstraints = false
if let safeTop = top, let safePaddingTop = paddingTop {
topAnchor.constraint(equalTo: safeTop, constant: safePaddingTop).isActive = true
}
if let safeLeft = left, let safePaddingLeft = paddingLeft {
leftAnchor.constraint(equalTo: safeLeft, constant: safePaddingLeft).isActive = true
}
if let safeBottom = bottom, let safePaddingBottom = paddingBottom {
bottomAnchor.constraint(equalTo: safeBottom, constant: -safePaddingBottom).isActive = true
}
if let safeRight = right, let safePaddingRight = paddingRight {
rightAnchor.constraint(equalTo: safeRight, constant: -safePaddingRight).isActive = true
}
if let safeWidth = width, safeWidth != 0 {
widthAnchor.constraint(equalToConstant: safeWidth).isActive = true
}
if let safeHeight = height, safeHeight != 0{
heightAnchor.constraint(equalToConstant: safeHeight).isActive = true
}
if let centerX = centerX {
centerXAnchor.constraint(equalTo: centerX).isActive = true
}
if let centerY = centerY {
centerYAnchor.constraint(equalTo: centerY).isActive = true
}
}
Код: Выделить всё
class CustomTableView: UITableView {
// Self sizing tableView
override public func layoutSubviews() {
super.layoutSubviews()
if bounds.size != intrinsicContentSize {
invalidateIntrinsicContentSize()
}
}
override public var intrinsicContentSize: CGSize {
layoutIfNeeded()
return contentSize
}
Подробнее здесь: https://stackoverflow.com/questions/785 ... on-changed
Мобильная версия