Как растянуть заголовок в Swift? - PullRequest
0 голосов
/ 21 января 2019

Я создал пользовательский вид заголовка для UINavigationItem.
И я хочу, чтобы пользовательский вид растягивался до отступа вправо.
Что я могу сделать ??

Я пытался установить rightBarButtonItem на ноль.
Но, похоже, нет решения.
И не тяните влево назад область кнопки.

override func viewDidLoad() {
    super.viewDidLoad()

    let searchBar = CustomSearchBar()
    searchBar.autoresizingMask = .flexibleWidth
    searchBar.frame = CGRect(x: 0, y: 0, width: 400, height: 30)

    self.navigationItem.titleView = searchBar

    self.navigationItem.rightBarButtonItem = UIBarButtonItem()
}

Смотрите мой результат.Я хочу красную область.

https://imgur.com/a/dar3cMN

Ответы [ 2 ]

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

let searchBar = CustomSearchBar ()

searchBar.translatesAutoresizingMaskIntoConstraints = false

self.navigationItem.titleView = searchBar

searchBar.heightAnchor.constraint (equalToConstant: 30.0) .isActive = true

searchBar.rightAnchor.constraint (equalTo: self.navigationController! .NavigationBar.rightAnchor) .isActive = true

searchBar.leftAnchor.constraint (equalTo: self.navigationController! .NavigationBar.centerXAnchor) .isActive = true

Приведенный выше код работал для меня. Вы можете удалить левый якорь, если вам не нужна планка в центре. Я также установил для translatesAutoresizingMaskIntoConstraints значение false, надеюсь, это сработает.

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

Попробуйте следующее в вашем классе CustomSearchBar:

override var intrinsicContentSize: CGSize {
    return UILayoutFittingExpandedSize
}
...