问题描述
有人知道我如何将后退按钮图像移动到屏幕边缘吗?
这是现在的样子:
这就是我想要的样子:
解决方法
尝试更改其插图:
self.navigationController?.navigationBar.backItem?.backBarButtonItem?.imageInsets = UIEdgeInsets(top: 0,left: -12,bottom: 0,right: 12)
并找到将其右移到边缘的值。
,如果将自定义视图添加为按钮并添加为leftBarButtonItem
,则该视图将始终采用该视图的默认x(框架的起始位置)位置,这是为导航栏项目定义的。您可以添加类似这样的东西以获得所需的输出:
class AnotherViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
addBackButton()
}
func addBackButton() {
let containerView = UIView(frame: CGRect(origin: .zero,size: CGSize(width: 200,height: 50)))
let btnBack = UIButton(frame: CGRect(x: -25,y: 0,width: 45,height: 45))
btnBack.setImage(UIImage(named: "dark_ic_back.png")?.withRenderingMode(.alwaysTemplate),for: .normal)
btnBack.tintColor = .black
btnBack.addTarget(self,action: #selector(self.backAction(_:)),for: .touchUpInside)
containerView.addSubview(btnBack)
self.navigationItem.leftBarButtonItem = UIBarButtonItem(customView: containerView)
}
@objc func backAction(_ sender: UIButton) {
self.navigationController?.popViewController(animated: true)
}
}
输出: