我使用以下代码来自定义UINavigationBar的后退按钮。但是,图像被拉伸太远,导致如下图像。请告诉我如何防止这种情况?
谢谢!
[[UIImage imageNamed:@"back_button"] stretchableImageWithLeftCapWidth:14 topCapHeight:0]
原始后退按钮图片:
答案 0 :(得分:2)
UIBarButtonItem
的最小宽度很大程度上取决于您提供的图片的大小。您应该从编辑器中导出后箭头图像,以便图像中间列中只有1像素的可图块化图像内容,这样左右部分可以用作左右上限:
答案 1 :(得分:1)
根据图像,似乎图像被正确拉伸。只需检查后退按钮框架即可。如果字符串“Profile”的末尾没有空格,请验证。
答案 2 :(得分:0)
stretchableImageWithLeftCapWidth:topCapHeight
。
这不能回答你的问题。这只是一个暗示。
答案 3 :(得分: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";
您可以自定义边缘插入以排除不应拉伸的部分。