UIBarButtonItem backButtonBackgroundImage:被拉伸

UIBarButtonItem backButtonBackgroundImage: gets stretched

我正在使用 UIAppearance 设置自定义 backButtonBackgroundImage 以及隐藏后退按钮标题:

// Back Button Image
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:[UIImage imageNamed:@"ZSSBackArrow"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -100) forBarMetrics:UIBarMetricsDefault];

效果很好,但问题是我的箭头图像真的被水平拉伸了:

它应该是这样的:

更新:使用 cap inset 使图像看起来像这样:

有没有办法防止图片被拉伸?

更改图片的帽内嵌,使图片符合您的要求:

UIImage *barButtonImage = [[UIImage imageNamed:@"ZSSBackArrow"] resizableImageWithCapInsets:UIEdgeInsetsMake(0,width,0,0)];

这将使图像的宽度保持为您指定的宽度。

您可能需要稍微调整一下数字才能恰到好处。

使用背景图片属性 强制拉伸。尝试使用图像 属性 并尝试使用图像 inset/offset 将图像放置在您想要的位置。