设置导航栏后退按钮图像

Dar*_*ren 17 uibarbuttonitem uinavigationitem ios uiappearance

我想将UINavigationBar中的后退按钮设置为此图像:

在此输入图像描述

我不希望图像嵌入标准后退按钮图像,我只想要显示此图像.

通过查看我可以使用的其他问题,我知道:

[[UIBarButtonItem appearance] setBackButtonBackgroundImage:barButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
Run Code Online (Sandbox Code Playgroud)

设置后退按钮的背景图像.但这导致图像被拉伸,据我所知,这个特定的图像不适合被拉伸.

有没有办法可以用我的图像替换后退按钮图像?

我支持iOS 5.0及更高版本.

Ale*_*nko 46

从iOS 7+起,您应该使用backIndicatorImage属性UINavigationBar来设置自定义指标图像.您还需要提供backIndicatorTransitionMaskImage(两者可以使用相同的图像).

斯威夫特:

UINavigationBar.appearance().backIndicatorImage = UIImage(named: "back-button-image")
UINavigationBar.appearance().backIndicatorTransitionMaskImage = UIImage(named: "back-button-image")
Run Code Online (Sandbox Code Playgroud)

Objective-C:

[[UINavigationBar appearance] setBackIndicatorImage:[UIImage imageNamed:@"back-button-image"]];
[[UINavigationBar appearance] setBackIndicatorTransitionMaskImage:[UIImage imageNamed:@"back-button-image"]];
Run Code Online (Sandbox Code Playgroud)


Wai*_*ain 5

来自UIBarButtonItem的文档setBackButtonBackgroundImage:forState:barMetrics ::

为获得良好的效果,backgroundImage必须是可伸缩的图像.

所以,让它伸缩.即指定图像的哪些部分可以拉伸,更重要的是,哪些部分不能拉伸.在您的情况下,这将是图像的边缘(不包含箭头的部分).

UIImage resizableImageWithCapInsets:

另一种方法是提供许多图像(每个条形度量一个),其大小意味着它不需要缩放. raywenderlich用户界面定制.但是你仍然希望使图像可伸缩,这样你就能控制发生的事情.

如果找不到有效的拉伸规范,则后备位置是为每个视图控制器的每个实例创建一个模板后退按钮项,并将其设置backBarButtonItem为其导航项.


Cha*_*lva 5

快速版本:-

    self.navigationController?.navigationBar.backIndicatorImage = UIImage(named: "HomeLeft@2x")
    self.navigationController?.navigationBar.backIndicatorTransitionMaskImage = UIImage(named: "HomeLeft@2x")
    self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Plain, target: nil, action: nil)
Run Code Online (Sandbox Code Playgroud)

把它放在 viewDidLoad()