ios - 调整自定义导航后退按钮的位置

标签 ios swift uinavigationcontroller uinavigationitem

我使用自定义图像作为导航 Controller 的后退按钮,但问题是该图像未与标题和右侧按钮项正确对齐。我一直试图将后退按钮向下移动几个像素,但没有成功。

extension UINavigationController {

       func addBackButton() {
            let imgBack = UIImage(named: "ic_back")
            navigationBar.backIndicatorImage = imgBack
            navigationBar.backIndicatorTransitionMaskImage = imgBack
            navigationBar.topItem?.backBarButtonItem = UIBarButtonItem(title: "",
                                                                       style: .plain,
                                                                       target: self,
                                                                       action: nil)
        }
}

这就是现在的样子:

enter image description here

如您所见,我需要将后退按钮向下移动一点,任何帮助将不胜感激。

最佳答案

这是我的自定义后退按钮的代码。我在 viewDidLoad() 上添加了下图。也许您需要用图像测试如何正确调整其大小。您可以删除带有标签的部分。

            let backButtonView = UIView(frame: CGRect(x: 0, y: 0, width: 60, height: 44))
            let imageView = UIImageView(image: UIImage(named: "back-arrow"))
            imageView.frame = CGRect(x: -5, y: 11, width: 12, height: 22)
            imageView.image = imageView.image!.withRenderingMode(.alwaysTemplate)
            imageView.tintColor = .blue
            let label = UILabel(frame: CGRect(x: 10, y: 0, width: 40, height: 44))
            label.textColor = .blue
            label.text = "Back"
            backButtonView.addSubview(imageView)
            backButtonView.addSubview(label)
            backButtonView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(backButtonClicked)))
            let barButton = UIBarButtonItem(customView: backButtonView)
            navigationItem.leftBarButtonItem = barButton

enter image description here

关于ios - 调整自定义导航后退按钮的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56857833/

相关文章:

ios - 为 UINavigationController 自定义状态栏背景

iphone - 发布数据但获取方法 json -ios

ios - 如何使用第三方应用程序在 Apple Watch 的事件移动环中添加贡献

ios - NSManagedObject 无法初始化

ios - 变量在尝试重置时保留旧值

ios - iOS10 上的蓝牙 LE 奇怪行为

ios - 将导航 Controller 添加到 View 时无法传递数据

ios - swift Realm : How to replace database at the same path without restarting app

Swift 以常量存储信息并将其保存在那里

iOS 7 在框架更改后呈现 navcontroller 导航栏高度 64px