gpt4 book ai didi

ios - 如何删除 UIBarButtonItem 的左填充?

转载 作者:行者123 更新时间:2023-11-28 10:07:47 24 4
gpt4 key购买 nike

我想使用一个自定义 View 作为留在 UINavigationController 中的 UIBarButtonItem,是否可以删除此处的左侧填充?

我已经试过了:

let  btn = UIButton()
btn.frame = CGRect(x: -50, y: -50, width: 44, height: 50)
btn.setImage(UIImage(name:"img").withRenderingMode(.alwaysTemplate), for: .normal)
btn.addTarget(self, action: #selector(openSetting), for: .touchUpInside)

let leftButtonBar = UIBarButtonItem(customView: btn)

self.navigationItem.leftBarButtonItems = ( [leftButtonBar , otherBtn ])

enter image description here

如何删除剩余空间设置图标

更新。厌倦了这段代码:

let view = UIView(frame: CGRect(x: 0, y: 0, width: 50, height: 
view.backgroundColor = .gray
let btn = UIButton()
btn.frame = CGRect(x: -15, y: 0, width: 44, height: 50)
btn.setImage(UIImage(name:"img").withRenderingMode(.alwaysTemplate), for: .normal)
btn.addTarget(self, action: #selector(DashboardTabBarController.openSetting), for: .touchUpInside)
view.addSubview(btn)
let leftButtonBar = UIBarButtonItem(customView: view)

enter image description here

当点击 btn 设置用户时问题这个用户和其他问题 title navigation not center align

最佳答案

你应该注意到无论x您提供给自定义 View 的值,即 btn ,它将始终从相同的位置开始,因为内部导航栏不计入为该项目提供的位置,并且它始终设置内部定义的位置,如下图所示,我将背景颜色设置为自定义按钮以获得更好的视觉效果。

enter image description here

所以,这里的技巧是将自定义按钮放入另一个容器 View 中,如下所示,

let view = UIView(frame: CGRect(origin: .zero, size: CGSize(width: 200, height: 50)))
view.backgroundColor = .green
let btn = UIButton(frame: CGRect(x: -10, y: 10 , width: 30, height: 30))
btn.setImage(UIImage(named: "cancelled")?.withRenderingMode(.alwaysTemplate), for: .normal)
btn.addTarget(self, action: #selector(openSetting), for: .touchUpInside)
btn.backgroundColor = .yellow
btn.tintColor = .red
view.addSubview(btn)

let btn2 = UIButton(frame: CGRect(x: 20, y: 10, width: 30, height: 30))
btn2.setImage(UIImage(named: "cancelled")?.withRenderingMode(.alwaysTemplate), for: .normal)
btn2.contentMode = .scaleAspectFit
btn2.tintColor = .yellow
btn2.addTarget(self, action: #selector(openSetting), for: .touchUpInside)
view.addSubview(btn2)

let itemsContainer = UIBarButtonItem(customView: view)
self.navigationItem.leftBarButtonItems = [itemsContainer]

这会导致这样,

enter image description here

现在,如果您更改 x , y , width , heightbtn ,它会相应地调整。

关于ios - 如何删除 UIBarButtonItem 的左填充?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51415437/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com