setBackButtonBackgroundImage不起作用

时间:2016-01-07 01:43:57

标签: ios xcode swift uinavigationcontroller

我只是想将UINavigationBar中的后退按钮图标更改为自定义图像,以便与所有其他图标匹配,但我已经采用了这两种不同的方式。

将故事板检查器内的UINavigationController中的遮罩图像设置为背面图像,导致图像与标题或rightBarItem不一致。

enter image description here

我尝试的另一种方法是setBackButtonBackgroundImage文件中的ViewControllerappDelegate。但是下面的代码;

let backImg: UIImage = UIImage(named: "Back")!           
UIBarButtonItem.appearance().setBackButtonBackgroundImage(backImg, forState: .Normal, barMetrics: .Default)

但结果却更加奇怪,图像变得紧张。

任何人都可以帮助我解决这种情况发生的原因,或者提供一种替代方法来更改UINavigationBar中的后退图标吗?

enter image description here

2 个答案:

答案 0 :(得分:1)

  let backImage = UIImage(named: "back_button_name")
  UIBarButtonItem.appearance().setBackButtonBackgroundImage(backImage?.resizableImageWithCapInsets(UIEdgeInsetsMake(0, (backImage?.size.width)!-1, 0, 0)), forState: .Normal, barMetrics: .Default)

答案 1 :(得分:0)

Swift 3.0

let backImage = UIImage(named: "arrow_left")
UINavigationBar.appearance().backIndicatorImage = backImage
UINavigationBar.appearance().backIndicatorTransitionMaskImage = backImage