0

我正在使用以下代码来自定义 UINavigationBar 的后退按钮。但是,图像被拉伸得太远,导致图像如下所示。请问你能告诉我如何防止这种情况吗?

谢谢!

[[UIImage imageNamed:@"back_button"] stretchableImageWithLeftCapWidth:14 topCapHeight:0]

在此处输入图像描述

原始后退按钮图像:在此处输入图像描述

4

4 回答 4

2

的最小宽度UIBarButtonItem很大程度上取决于您提供的图像的大小。您应该从编辑器中导出后退箭头图像,以便图像的中间列中只有 1 个像素的可平铺图像内容,这样左右部分可以用作左右大写:

后退栏按钮项目箭头示例

于 2012-08-19T15:01:37.967 回答
1

根据图像,似乎图像已正确拉伸。只需检查后退按钮框架。另外请验证字符串“Profile”的末尾是否没有空格。

于 2012-08-19T15:01:15.720 回答
0

我有一张带有噪点纹理的图像,并且想做同样的事情。我终于找到了这个解决方案,我相信它完全符合您的要求(至少在 iOS 6 中):

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] init];
UIImage *buttonBg = [[UIImage imageNamed:@"back-arrow.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 16, 0, 6)];
[backButton setBackButtonBackgroundImage:buttonBg forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
backButton.title = @"Back";

您可以自定义边缘插图以排除不应拉伸的部分。

于 2013-04-10T19:11:48.220 回答
0

stretchableImageWithLeftCapWidth:topCapHeight在 iOS 5 中已弃用。

这不能回答你的问题。这只是一个提示。

不推荐使用的 UIImage 方法

于 2012-08-19T22:53:38.573 回答