iOS 11 Swift 4 Добавление ChildViewController в UISCrollView не занимает полную высоту - PullRequest
0 голосов
/ 28 мая 2018

Я пытаюсь сделать макет, похожий на Snapchat для моего приложения.

У меня есть основной view-контроллер с scrollview.Я добавляю 3 viewcontrollers как дочерние элементы scrollview.

все отлично работает на iOS 10 на iPhone 5C, но на iOS 11 на iPhone 6S, дочерний контроллер представления не принимает полную высоту

Оранжевая часть - это дочерний контроллер вида, а синяя часть - вид прокрутки

Вот мой основной код VC:

    let trendView = TrendViewController(nibName: "TrendViewController", bundle: Bundle.main)
    let homeView = HomeViewController(nibName: "HomeViewController", bundle: Bundle.main)
    let searchView = SearchViewController(nibName: "SearchViewController", bundle: Bundle.main)

    trendView.view.translatesAutoresizingMaskIntoConstraints = false
    homeView.view.translatesAutoresizingMaskIntoConstraints = false
    searchView.view.translatesAutoresizingMaskIntoConstraints = false

    self.addChildViewController(trendView)
    self.mainScrollView.addSubview(trendView.view)

    trendView.didMove(toParentViewController: self)

    self.addChildViewController(homeView)
    self.mainScrollView.addSubview(homeView.view)
    homeView.didMove(toParentViewController: self)

    self.addChildViewController(searchView)
    self.mainScrollView.addSubview(searchView.view)
    searchView.didMove(toParentViewController: self)

    var homeFrame = homeView.view.frame
    homeFrame.origin.x = self.view.frame.width
    homeView.view.frame = homeFrame

    var searchFrame = searchView.view.frame
    searchFrame.origin.x = self.view.frame.width * 2
    searchView.view.frame = searchFrame

    self.mainScrollView.contentSize = CGSize(width: self.view.frame.width * 3, height: self.view.frame.height)
    self.mainScrollView.contentOffset = CGPoint(x: self.view.frame.width, y: 0)

Я загрузил старый проект, в котором нет безопасной зоны, и у меня нет проблемы ... не знаю, есть ли связь с этой проблемой

Спасибо за любую помощь

1 Ответ

0 голосов
/ 29 мая 2018

Я знаю, что не назначил высоту, но во всех найденных примерах они никогда не назначали высоту дочерним видам vc.

Я только что добавил эти строки:

trendView.view.leadingAnchor.constraint(equalTo: self.mainScrollView.leadingAnchor).isActive = true
        trendView.view.topAnchor.constraint(equalTo: self.mainScrollView.topAnchor).isActive = true
        trendView.view.widthAnchor.constraint(equalTo: self.view.widthAnchor).isActive = true
        trendView.view.heightAnchor.constraint(equalTo: self.view.heightAnchor).isActive = true

        homeView.view.leadingAnchor.constraint(equalTo: trendView.view.trailingAnchor).isActive = true
        homeView.view.topAnchor.constraint(equalTo: self.mainScrollView.topAnchor).isActive = true
        homeView.view.widthAnchor.constraint(equalTo: self.view.widthAnchor).isActive = true
        homeView.view.heightAnchor.constraint(equalTo: self.view.heightAnchor).isActive = true

        searchView.view.leadingAnchor.constraint(equalTo: homeView.view.trailingAnchor).isActive = true
        searchView.view.topAnchor.constraint(equalTo: self.mainScrollView.topAnchor).isActive = true
        searchView.view.widthAnchor.constraint(equalTo: self.view.widthAnchor).isActive = true
        searchView.view.heightAnchor.constraint(equalTo: self.view.heightAnchor).isActive = true

А теперь все работает :) Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...