Как вы можете создать навигационный элементItem.titleView, высота которого превышает 40 пикселей под iOS13.3? - PullRequest
0 голосов
/ 17 января 2020

Использование Swift 5.1.3, iOS13.3, XCode11.3,

Я пытаюсь создать пользовательский заголовок navigationBar и использовать для этого навигационный элементItem.titleView.

Все работает нормально если пользовательский titleView имеет небольшой размер (около 40-45 пикселей). Причина, скорее всего, заключается в том, что правая левая кнопка navigationItem также имеет такой маленький размер.

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

Я нахожу много ответов для пользовательских naviagationItem.titleView's (таких как следующий код). Но, к сожалению, эти решения не помогают для более высоких высот!

Вот решение для малых высот:

var titleView = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 40))
var titleImageView = UIImageView(image: UIImage(named: "headerlogo"))
titleImageView.frame = CGRect(x: 0, y: 0, width: titleView.frame.width, height: titleView.frame.height)
titleView.addSubview(titleImageView)
navigationItem.titleView = titleView

Если высота 150 или 250, это решение не работает - особенно если Пользовательский titleView содержит кнопку. На кнопку больше нельзя нажимать, так как событие щелчка больше не распознается на нижних краях пользовательского titleView!

Проблема 1: События щелчка кнопки больше не распознаются, если вы помещаете элементы в пользовательский навигационный элемент большой высоты. titleView.

Проблема 2: При переходе назад из Detail-V C в ваш V C, содержащий большой заголовок customItem.titleView с большим заголовком, тогда наш настраиваемый заголовок полностью исчезает.

Как преодолеть проблемы 1 и 2 - вот в чем вопрос. Спасибо за любую помощь в этом.

PS Вот иллюстрация желаемого результата. NavigationItem.titleView является пользовательским и содержит stackView с двумя элементами (то есть title-Text и круглой желтой кнопкой). Пользовательский titleView должен быть размещен в самом низу навигационной панели, но снова все еще преодолевает проблемы 1 и 2, как описано выше!

enter image description here

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