Проблема с размером дочернего контроллера - PullRequest
0 голосов
/ 29 января 2019

У меня есть контроллер представления с сегментированным элементом управления на панели навигации, который переключает дочерний контроллер представления с родительским контроллером.Это работает нормально, но табличное представление, которое я имею как ребенок vc, не является правильным размером.Он отрезан внизу.

Родительский ВК:

import UIKit

class ShareTabViewController: UIViewController {

    let segementedControl = UISegmentedControl(items: ["Share", "Blog", "Progress"])

    override func viewDidLoad() {
        super.viewDidLoad()

        self.segementedControl.sizeToFit()
        self.segementedControl.tintColor = Constants.Colors.raPurple
        self.segementedControl.selectedSegmentIndex = 0
        self.segementedControl.addTarget(self, action: #selector(selectionChanged(_:)), for: .valueChanged)
        self.navigationItem.titleView = self.segementedControl

        let shareVC = ShareTableViewController()
        self.view.addSubview(shareVC.view)
        self.addChild(shareVC)
        shareVC.didMove(toParent: self)
    }

    @objc func selectionChanged(_ sender: UISegmentedControl) {
        for subview in self.view.subviews {
            subview.removeFromSuperview()
        }

        for childVC in self.children {
            childVC.removeFromParent()
        }

        switch sender.selectedSegmentIndex {
        case 0:
            let shareVC = ShareTableViewController()
            self.view.addSubview(shareVC.view)
            self.addChild(shareVC)
        case 1:
            let blogVC = BlogViewController()
            self.view.addSubview(blogVC.view)
            self.addChild(blogVC)
        case 2:
            let progressVC = ProgressViewController()
             self.view.addSubview(progressVC.view)
            self.addChild(progressVC)
        default:
            print("default")
        }
    }
}

enter image description here

1 Ответ

0 голосов
/ 29 января 2019

Вам нужно установить рамку для надстройки selectionChanged и viewDidLayoutSubviews для надстройки viewDidLoad, так как она имеет неправильную рамку, или обычно использовать

NSLayoutConstraint.activate([ 
   shareVC.view.leadingAnchor.constraint(equalTo: self.view.leadingAnchor), 
   shareVC.view.trailingAnchor.constraint(equalTo: self.view.trailingAnchor), 
   shareVC.view.topAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.topAnchor), 
   shareVC.view.bottomAnchor.constraint(equalTo:self.view.safeAreaLayoutGuide.bottomAnchor) 
])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...