导航栏项目

时间:2016-10-23 14:52:10

标签: uinavigationcontroller swift2 uinavigationbar swift3 uinavigationitem

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

Navigation Bar

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

我的问题:

  • 我的图片是远程按钮。我希望它更接近。
  • 我想在我的图片旁边添加标题。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

实际上,UINavigationBar仅支持UINavigationItem对象,您可以添加栏的左中间和右侧。 |左项|标题|正确的项目|

但是,诀窍在于在左侧添加多视图并将标题留空

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

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

let profileImage = UIImageView(...)

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

let profileImageView = UIBarButtonItem(customView: profileImage)

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

  1. 使用" NavigationBar - sideLeft(例如后退按钮)&#34的框架设置视图的初始宽度;

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

  2. 对于任何rightButtons计算宽度
  3. 再次使用新值
  4. 设置框架

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

    | < ----------------------------------------- UINavigationBar width ----- ----------------------------> |