导航栏项目
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(在你的例子中)。
使用“NavigationBar - sideLeft(例如后退按钮)”的框架设置视图的初始宽度
CGRectMake(0, 0, self.navigationBar.frame.width - backButton.frame.widht, 25)
对于任何右按钮计算宽度
用新值重新设置框架
|后退按钮宽度|自定义视图宽度 |右按钮 1 宽度 |... 右按钮 N 宽度 |
| <---------------------------------------- UINavigationBar 宽度 ------ --------------------------> |
我正在尝试像这样自定义导航栏:
我试了很多方法都做不到。 我可以删除后退按钮名称并在其旁边添加图像。
我的问题:
- 我的图片离后退按钮很远。我想要它更近一些。
- 我想在图片旁边添加标题。
我该怎么做?
实际上,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(在你的例子中)。
使用“NavigationBar - sideLeft(例如后退按钮)”的框架设置视图的初始宽度
CGRectMake(0, 0, self.navigationBar.frame.width - backButton.frame.widht, 25)
对于任何右按钮计算宽度
用新值重新设置框架
|后退按钮宽度|自定义视图宽度 |右按钮 1 宽度 |... 右按钮 N 宽度 |
| <---------------------------------------- UINavigationBar 宽度 ------ --------------------------> |