有没有办法更改导航项上的Bar Button项的宽度和插入?

时间:2012-06-24 05:39:45

标签: ios ios5

我想在我的MVC导航项目上的条形按钮项目上使用视网膜分辨率图像(40x40p)。当我设置图像时,它看起来像预期的那样在水平方向上拉伸:

Stretched navigation item button image

注意我还有一个工具栏按钮图像,其视网膜分辨率(60px60p)符合Apple spec的要求。当size参数具有默认值时,它被类似地拉伸,即width = 0,insets; t = 0时,B = 0,L = 0,R = 0:

enter image description here

然而,与导航器项目不同,在工具栏中,我可以从IB成功更改这些值。当我设置width = 30,并且插入t = 5,b = 5,l = 5,r = 5时,工具栏按钮完全显示:

Perfectly scaled hi-res toolbar button image

当我使用“尺寸”检查器并尝试设置导航项的条形按钮项的宽度和插入值时,它似乎没有任何效果。齿轮图像看起来仍然很紧张。

我还尝试通过代码在导航项上创建条形按钮项,并在那里设置宽度和插入,它也不起作用:

        UIImage *image = [UIImage imageNamed:@"073-Setting@2x.png"];
    //--------------------------------------------------------------------
    // This line had no effect for a bar button item on a navigation item:
    image = [image resizableImageWithCapInsets:UIEdgeInsetsMake(5.0,5.0,5.0,5.0)];
    //--------------------------------------------------------------------
    UIBarButtonItem *button = [[UIBarButtonItem alloc] 
                               initWithImage:image 
                               style:UIBarButtonItemStylePlain
                               target:self
                               action:@selector(handleBack:)];
    //--------------------------------------------------------------------
    // This line had no effect for a bar button item on a navigation item:
    button.width = 30;
    //--------------------------------------------------------------------

任何想法我是否做错了,或者这看起来像一个错误。我的部署目标是IOS 5.0。

1 个答案:

答案 0 :(得分:0)

我现在明白这个问题背后的原因。我不知道我需要在应用程序包中包含普通和高分辨率(@ 2x)图像。我天真地想要包含高​​分辨率图像并希望它能够工作。由于我只有iPhone故事板,包括捆绑中每个图像的20和40像素版本修复了我的问题。

因此,无需使用按钮宽度或插入物。此问题现已解决。