Элементы навигации

Я пытаюсь настроить панель навигации следующим образом:

Панель навигации

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

Мои проблемы:

  • Мое изображение далеко до кнопки назад. Я хочу это поближе.
  • И я хочу добавить заголовки рядом с моим изображением.

Как мне это сделать?

1 ответ

Решение

На самом деле UINavigationBar поддерживает только объекты UINavigationItem, и вы можете добавить левую середину и правую часть панели. | оставленный предмет | Название | правильный пункт |

Но фокус в том, чтобы добавить мульти-вид слева и оставить название пустым.

navigationItem.setLeftBarButtonItems([backButton, profileImageView, profileNameView], animated: true)

Перед этим вам нужно настроить UIBarButtonItem для profileImageView (например)

let profileImage = UIImageView(...)

создайте свой UIBarButtonItem с этим пользовательским представлением

let profileImageView = UIBarButtonItem(customView: profileImage)

Важное примечание Иногда (почти часто) вам нужно исправить рамку этого представления, потому что это пользовательский. Всегда проверяйте ширину NavigationBar, а затем проверяйте, сколько правых кнопок (в вашем случае) присутствует на rightItem.

  1. установить начальную ширину вида, используя фрейм "NavigationBar - sideLeft (кнопка назад, например)"

    CGRectMake(0, 0, self.navigationBar.frame.width - backButton.frame.widht, 25)

  2. Для любой правой кнопки рассчитать ширину
  3. снова установить кадр с новым значением

| ширина кнопки назад | настраиваемая ширина просмотра | правая кнопка 1 ширина |... правая кнопка N widht |

| <----------------------------------------- Ширина UINavigationBar ------ ---------------------------> |

Другие вопросы по тегам