我已经能够通过故事板获得带有嵌入式uibutton的自定义UIBarButtonItem。这是地图按钮。 看到这个截图的参数,我不得不使用background属性而不是Image。
但是当我尝试以编程方式自定义一些uibarbuttons时,按钮会变小。当我使用Image属性时,我在地图按钮上得到了相同的结果。
这里是我为后退按钮编写的代码,
UIImage *backButtonImage = [[UIImage imageNamed:@"Retour.png"]resizableImageWithCapInsets:UIEdgeInsetsMake(21, 21, 21, 21)] ;
backButtonImage = [backButtonImage stretchableImageWithLeftCapWidth:0 topCapHeight:0];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0, 0, backButtonImage.size.width, backButtonImage.size.height);
[button setBackgroundImage:backButtonImage forState:UIControlStateNormal];
[button setBackgroundImage:backButtonImage forState:UIControlStateHighlighted];
[button addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *backBarButton = [[UIBarButtonItem alloc] initWithCustomView:button] ;
self.navigationItem.leftBarButtonItem = backBarButton;
我尝试使用或不使用resizableImageWithCapInsets,stretchableImageWithLeftCapWidth,结果如下(后退按钮应与地图按钮的大小相同)
我还尝试了iOS 5的setBackButtonBackgroundImage方法,但按钮根本没有自定义。
答案 0 :(得分:0)
如果您没有找到问题的答案,我可以建议您使用此功能:
- (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize
{
//UIGraphicsBeginImageContext(newSize);
UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
[image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
返回缩放到指定大小的图像。
因此,您可以调整所需大小的图像大小,然后将其设置为背景图像。
答案 1 :(得分:0)
问题是我用Retour.png覆盖Retour@2x.png进行视网膜显示 - _ _-'