我正在使用以下代码来自定义 UINavigationBar 的后退按钮。但是,图像被拉伸得太远,导致图像如下所示。请问你能告诉我如何防止这种情况吗?
谢谢!
[[UIImage imageNamed:@"back_button"] stretchableImageWithLeftCapWidth:14 topCapHeight:0]
原始后退按钮图像:
我正在使用以下代码来自定义 UINavigationBar 的后退按钮。但是,图像被拉伸得太远,导致图像如下所示。请问你能告诉我如何防止这种情况吗?
谢谢!
[[UIImage imageNamed:@"back_button"] stretchableImageWithLeftCapWidth:14 topCapHeight:0]
原始后退按钮图像:
的最小宽度UIBarButtonItem
很大程度上取决于您提供的图像的大小。您应该从编辑器中导出后退箭头图像,以便图像的中间列中只有 1 个像素的可平铺图像内容,这样左右部分可以用作左右大写:
根据图像,似乎图像已正确拉伸。只需检查后退按钮框架。另外请验证字符串“Profile”的末尾是否没有空格。
我有一张带有噪点纹理的图像,并且想做同样的事情。我终于找到了这个解决方案,我相信它完全符合您的要求(至少在 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";
您可以自定义边缘插图以排除不应拉伸的部分。