【问题标题】:iOS 13 - Custom back button without text SwiftiOS 13 - 没有文字 Swift 的自定义后退按钮
【发布时间】:2020-01-18 00:57:27
【问题描述】:

在我的应用程序中,我有一个自定义图标可以返回到以前的 ViewController。 它运行良好,但在 iOS 13 中,图标放错了位置。

有趣的事实是,我仍然需要单击左侧(原来的后退图标所在的位置,换句话说,在空白处)才能返回上一个ViewController

你知道为什么吗?

这是我用来自定义后退按钮的代码。

var back = UIImage(named: "backButton")
back = back?.withAlignmentRectInsets(UIEdgeInsetsMake(0, -50, 0, 50))
self.navigationController?.navigationBar.backIndicatorImage = back?.withAlignmentRectInsets(UIEdgeInsetsMake(0, -50, 0, 50))

self.navigationController?.navigationBar.backIndicatorTransitionMaskImage = back?.withAlignmentRectInsets(UIEdgeInsetsMake(0, -50, 0, 50))

self.navigationController?.navigationBar.backItem?.backBarButtonItem = UIBarButtonItem(title: " ", style: UIBarButtonItemStyle.plain, target: nil, action: nil)

self.navigationController?.navigationBar.tintColor = .black

这是后退图标的屏幕截图,不再是左侧:

【问题讨论】:

  • 你好像用了很多UIEdgeInsetsMake,也许试试其他值?
  • 用AlignmentRectInsets也显示这个方法
  • 你修复过这个@KevinB 吗?

标签: ios swift swift3 back ios13


【解决方案1】:

UIBarButtonItemcustomView 一起使用非常适合您的情况。通过创建UIButton 的实例,您可以选择图像和标题,此外还可以传递自定义选择器来处理按钮事件。

这里是示例代码:

let button = UIButton(type: .system)
button.setImage(UIImage(named: "YOUR IMAGE NAME"), for: .normal)
button.setTitle("TITLE IF ANY", for: .normal)
button.sizeToFit()
button.addTarget(self, action: #selector(backBtnPressed(sender:)), for: .touchUpInside)

let leftBtn = UIBarButtonItem(customView: button)
leftBtn.style = .plain
navigationItem.leftBarButtonItem = leftBtn

@objc func backBtnPressed(sender: UIBarButtonItem) {
    print("BackBtnPressed")
}

【讨论】:

    猜你喜欢
    • 2013-09-20
    • 1970-01-01
    • 2014-09-10
    • 2020-02-11
    • 2020-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多