导航栏项目

Navigation bar Items

我正在尝试像这样自定义导航栏:

我试了很多方法都做不到。 我可以删除后退按钮名称并在其旁边添加图像。

我的问题:

我该怎么做?

实际上,UINavigationBar只支持UINavigationItem objects,您可以添加左右栏。 |左项 |标题 |正确的项目 |

但是,诀窍在于在左侧添加 multi-view 并将标题留空

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

在此之前,您需要为profileImageView自定义一个UIBarButtonItem(例如)

let profileImage = UIImageView(...)

使用该自定义视图创建您的 UIBarButtonItem

let profileImageView = UIBarButtonItem(customView: profileImage)

重要提示 有时(几乎经常)您需要修复该视图的框架,因为它是自定义的。曾经检查过 NavigationBar 的宽度,然后检查 rightItem 上有多少个 rightButtons(在你的例子中)。

  1. 使用“NavigationBar - sideLeft(例如后退按钮)”的框架设置视图的初始宽度

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

  2. 对于任何右按钮计算宽度

  3. 用新值重新设置框架

|后退按钮宽度|自定义视图宽度 |右按钮 1 宽度 |... 右按钮 N 宽度 |

| <---------------------------------------- UINavigationBar 宽度 ------ --------------------------> |