UISearchBar с UISearchController в верхней части UIViewController разрывается при нажатии на него - PullRequest
1 голос
/ 03 апреля 2019

Я использую UISearchController с его UISearchBar.

Я хотел бы поместить UISearchBar в верхнюю часть моего UIViewController представления с использованием AutoLayout:

import UIKit

class ViewController: UIViewController {
    var searchController = UISearchController(searchResultsController: nil)

    let myCustomSearchBar = UISearchBar()

    var searchBar: UISearchBar {
        // return searchController.searchBar
        return myCustomSearchBar
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        searchController.dimsBackgroundDuringPresentation = false
        searchController.obscuresBackgroundDuringPresentation = false
        searchController.hidesNavigationBarDuringPresentation = false

        view.addSubview(searchBar)
        configureSearchBarLayout()
        searchBar.translatesAutoresizingMaskIntoConstraints = false
    }

    private func configureSearchBarLayout() {
        [
            searchBar.leadingAnchor.constraint(equalTo: view.leadingAnchor),
            searchBar.topAnchor.constraint(equalTo: view.layoutMarginsGuide.topAnchor),
            searchBar.trailingAnchor.constraint(equalTo: view.trailingAnchor),
            searchBar.heightAnchor.constraint(equalToConstant: 88)
            ]
            .forEach{
                $0.isActive = true
        }
    }
}

Что приводит к отображению следующего вида:

enter image description here

Однако, как только я нажимаю на поисковик, он полностью исчезает с экрана, чтобы никогда больше не появляться.

Если я изменю код для включения базового UISearchBar, не созданного UISearchController, он будет работать нормально:

enter image description here

Почему панель поиска UISearchController работает неправильно, когда я пытаюсь привязать ее к вершине с помощью AutoLayout и как это исправить?

...