Использование 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, как описано выше!