导航栏标题视图与左栏按钮项重叠

Posted

技术标签:

【中文标题】导航栏标题视图与左栏按钮项重叠【英文标题】:Navigation Bar Title View Overlaps Left Bar Button Item 【发布时间】:2016-11-27 12:22:24 【问题描述】:

我有一个自定义左栏按钮项、一个自定义标题视图和一个自定义右栏按钮项。它们都是固定空间项,在故事板中定义了 rightBarButton 视图,在代码中定义了 left 和 title 视图。它们被添加到导航栏中,如下所示:

let leftButton = UIBarButtonItem()
leftButton.customView = myLeftBarView
navigationItem.leftBarButtonItem = leftButton

let rightButton = UIBarButtonItem()
rightButton.customView = myRightBarView
navigationItem.rightBarButtonItem = rightButton

navigationItem.titleView = myTitleView

这在我的rightBarButtonItem 很小的时候可以正常工作,但是现在它的宽度约为 80 像素并且在较小的屏幕尺寸(iPhone 5 和 5s)上,titleView 被推向左侧,并略微重叠我的leftBarButtonItem

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

我希望你已经像这样添加了左右栏按钮项。

let button: UIButton = UIButton (type: UIButtonType.Custom)
button.setImage(UIImage(named: "imageName"), forState: UIControlState.Normal)
button.addTarget(self, action: "backButtonPressed:", forControlEvents: UIControlEvents.TouchUpInside)
button.frame = CGRectMake(0, 0, 30, 30)
let barButton = UIBarButtonItem(customView: button)

self.navigationItem.leftBarButtonItem = barButton

调用方法。

func backButtonPressed(btn : UIButton) 


希望这会对你有所帮助。

【讨论】:

是的,我所有的栏按钮项都是 UIViews,它们作为 customView 添加到UIBarButtonItem。但这无济于事。 能否请您写下您的整个左栏按钮,视图中的标题和右栏按钮代码将随着您的帖子出现并更新,以便我们尽快看到并帮助您。 已更新。视图不包含初始化代码,但它们使用自动布局。 我相信你的右栏按钮放置了空白空间,这就是为什么标题被推向左侧并覆盖在左栏按钮上。尝试在创建按钮时使用我的代码然后添加栏按钮项.希望这能解决您的问题。还要检查这个***.com/questions/36709220/…

以上是关于导航栏标题视图与左栏按钮项重叠的主要内容,如果未能解决你的问题,请参考以下文章

无法在导航栏中设置左栏按钮项?

导航左栏按钮项作为图像徽标

按下导航控制器左栏按钮时如何停止视图消失

导航栏中的 Barbutton 项目左栏按钮粘在左上角

单击导航返回按钮,然后导航栏重叠相同的视图

当后退按钮在导航栏中没有标题时,停止左栏按钮向右移动