iOS:删除左侧 uibarbuttonitem 之间的间隙

Posted

技术标签:

【中文标题】iOS:删除左侧 uibarbuttonitem 之间的间隙【英文标题】:iOS: Remove gap between left uibarbuttonitems 【发布时间】:2016-12-30 19:30:49 【问题描述】:

我在左边设置了两个UIBarButtonItem。下面是屏幕线框的屏幕截图,从调试视图层次结构中捕获。红框是默认的后退按钮,绿框是菜单按钮。

从截图来看,后退按钮图像和菜单按钮之间存在间隙。后退按钮的视图占用了额外的空间。我正在想办法让这两个按钮彼此靠近。

我删除了返回按钮的“返回”文本:

let backItem = UIBarButtonItem()
backItem.title = ""
self.backBarButtonItem = backItem

并添加了菜单按钮:

let btn = UIBarButtonItem()
btn.customView = menu // it's a UIButton
self.leftItemsSupplementBackButton = true
self.leftBarButtonItem = menu

【问题讨论】:

【参考方案1】:

如果它确实是后退按钮视图,那么只需减小其视图框架的大小就可以了。

如果它是他们给你的主后栏按钮项目的一个属性,那么制作一个看起来相同的自定义项,并给它适当的大小。

如果您使用的是灵活的空格键按钮项,则使用固定的空格键按钮项并进行适当的设置。

您还可以通过在框架上使用的 insetInPlace() 来修改条形按钮视图位置的值,但这需要对要使用的正确值进行一些试验。

【讨论】:

【参考方案2】:

有几个选项:

一种是插入一个不可见的条形按钮项并给它负宽度,如下所示https://***.com/a/31804099/520810

您也可以调整图像插入https://***.com/a/22742322/520810

【讨论】:

以上是关于iOS:删除左侧 uibarbuttonitem 之间的间隙的主要内容,如果未能解决你的问题,请参考以下文章

具有自定义视图的 UIBarButtonItem 在 iOS 7 上用作左侧或右侧导航栏项目时未正确对齐

如何在 UINavigationBar [iOS 7] 中编辑左、右 UIBarButtonItem 的空白

如何删除左 UIBarButtonItem 的填充?

在 UIToolbar 中的 UIBarButtonItem 上更改 tintColor 会导致按钮消失并从左侧动画化

在 iOS 中将 self.navigationItem.backBarButtonItem 与设备左侧对齐

删除 iOS UIBarButtonItem 的标题文本