如何在可能的导航控制器中更改条形按钮项的垂直位置和大小?

Posted

技术标签:

【中文标题】如何在可能的导航控制器中更改条形按钮项的垂直位置和大小?【英文标题】:how to i change the vertical position and size of bar button Item in may navigation controller? 【发布时间】:2017-08-15 07:48:34 【问题描述】:

我正在做一个项目,我有一个高度为 129 的导航栏,现在我需要在导航栏中添加一个栏按钮项。 我的问题是栏按钮位置我想更改栏按钮项目的位置。

这是正在发生的事情的图像:

这显示了我想要的位置:

【问题讨论】:

不要更改栏的高度,对栏使用不同的视图(在您的导航控制器中)并将栏隐藏起来 我试过这样做,我实际上是在使用 SWrevealController 来制作拆分视图。我尝试使用视图并向视图添加一个按钮以在后视图和前视图之间切换,但它似乎不起作用。 @Tj3n 【参考方案1】:

非常具体的情况,但您可以尝试为条形按钮项设置图像插图。

 let image = UIImage(named: "yourImage")     
 let leftButton = UIBarButtonItem(image: image, style: .plain, target: self, action: #selector(self.leftButtonDidPressed))
 leftButton.imageInsets = UIEdgeInsets(top: -64, left: 0, bottom: 0, right: 64)
 self.navigationItem.leftBarButtonItem = leftButton

【讨论】:

那不会改变触控区域。 向 navigationController.navigationBar 添加手势和处理触摸可能会有一些技巧。但这取决于任务 @meaning-matters 是对的,它不会改变触摸区域。我不能使用按钮在后视图和前视图之间切换而不是导航栏按钮(我正在使用 swreveal 视图控制器)open.target(forAction:#selector(SWRevealViewController.revealToggle(_:)), withSender: self) 我使用了上面的代码,但它不起作用。open 是一个按钮。@DmitryMolokov buttonHamburger.target = self.revealViewController() buttonHamburger.action = #selector(SWRevealViewController.revealToggle(_:)) 这是有效的。这里的 buttonHamburger 是一个导航栏按钮

以上是关于如何在可能的导航控制器中更改条形按钮项的垂直位置和大小?的主要内容,如果未能解决你的问题,请参考以下文章

如何更改后退按钮上的文本?

在 Swift 中调整导航栏项的位置

“导航项中不支持普通样式”警告我的自定义条形按钮项

更改导航项的颜色

通过整个应用程序更改导航项的颜色?

UIBarButtons 带有系统项的样式,旋转后消失